关于 gitops-workflows
gitops-workflows 是面向使用 GitOps 部署 Kubernetes 基础设施的团队的技能,提供 ArgoCD 和 Flux CD 指导,涵盖仓库设计、环境晋级、密钥管理、渐进式交付和回滚策略。
主要功能
- 01ArgoCD 和 Flux CD 指导
- 02仓库结构模式
- 03环境晋级策略
- 04密钥管理方案
- 05金丝雀与蓝绿交付
- 06回滚与灾难恢复
适用场景
- 01建立基于 Git 的 Kubernetes 交付
- 02管理多集群环境
- 03跨环境晋级变更
- 04规划部署失败后的回滚
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill gitops-workflows安装后在 Claude Code 中输入/gitops-workflows确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/argocd-implementation.mdbest-practices.mdcore-principles.mdenvironment-promotion.mdflux-implementation.mdprogressive-delivery.mdrepository-structures.mdrollback-strategies.mdsecret-management.md详细介绍
GitOps 工作流
关于使用 ArgoCD 和 Flux CD 实现生产级 GitOps 工作流的专业指南,涵盖声明式部署模式、渐进式交付策略、多环境管理,以及 Kubernetes 基础设施的安全密钥处理。
何时使用此技能
- 为 Kubernetes 部署实施 GitOps 原则
- 自动化从 Git 仓库进行持续交付
- 管理多集群或多环境部署
- 实施渐进式交付(canary、blue-green)策略
- 配置自动同步策略和协调
- 在 GitOps 工作流中安全管理密钥
- 设置环境晋级工作流
- 设计 GitOps 仓库结构(单体仓库与多仓库)
- 实施回滚策略和灾难恢复
- 通过 Git 建立合规性和审计跟踪
核心概念
四项原则
- 声明式:以代码形式表达整个系统状态
- 版本化:将规范状态存储在 Git 中,并保留完整历史记录
- 自动拉取:Agent 拉取期望状态(不向生产环境推送)
- 持续协调:自动检测并纠正偏差
主要优势
- 完整的部署历史和审计跟踪
- 通过 Git 操作快速回滚
- 增强安全性(CI 中无需集群凭据)
- 基础设施自我修复
- 多集群一致性
- 基础设施变更采用熟悉的 Git 工作流
快速参考
| 任务 | 加载参考资料 |
|---|---|
| GitOps 原则和优势 | skills/gitops-workflows/references/core-principles.md |
| 仓库结构模式(单体仓库、多仓库、分支) | skills/gitops-workflows/references/repository-structures.md |
| ArgoCD 设置、Applications、ApplicationSets | skills/gitops-workflows/references/argocd-implementation.md |
| Flux 引导、源、Kustomizations、HelmReleases | skills/gitops-workflows/references/flux-implementation.md |
| 环境晋级策略 | skills/gitops-workflows/references/environment-promotion.md |
| 密钥管理(Sealed Secrets、ESO、SOPS) | skills/gitops-workflows/references/secret-management.md |
| 渐进式交付(canary、blue-green) | skills/gitops-workflows/references/progressive-delivery.md |
| 回滚策略和灾难恢复 | skills/gitops-workflows/references/rollback-strategies.md |
| 最佳实践和模式 | skills/gitops-workflows/references/best-practices.md |
工作流步骤
1. 选择仓库结构
决策因素:
- 团队规模和组织结构
- 应用耦合度和依赖项
- 访问控制要求
- 部署频率和独立性
选项:
- 单体仓库:单个仓库,统一的平台团队,共享基础设施
- 多仓库:按应用或团队拆分仓库,独立发布周期
- 环境分支:Git flow 风格,心智模型简单
2. 选择 GitOps 工具
ArgoCD:
- 以 UI 为核心,提供可视化应用管理
- 采用 App of Apps 模式进行分层部署
- 使用 ApplicationSets 进行多集群部署
- 提供强大的 RBAC 和项目隔离
Flux:
- 以命令行优先,采用 GitOps Toolkit 架构
- 原生支持 Kustomize 和 Helm
- 自动更新镜像
- 更轻量,面向云原生
3. 配置密钥管理
切勿将未加密的密钥提交到 Git
选项:
- Sealed Secrets:客户端加密,工作流简单
- External Secrets Operator:从外部密钥存储同步(AWS、Vault、GCP)
- SOPS:使用 age 或云 KMS 进行基于文件的加密
4. 实施同步策略
非生产环境:
- 启用自动同步,并使用
prune和selfHeal - 频繁协调(1-5 分钟)
- 快速失败并立即反馈
生产环境:
- 手动审批或设置门控的自动化流程
- 健康检查和等待条件
- 对高风险变更采用渐进式交付
- 在维护时段设置同步窗口
5. 设置环境晋级
晋级策略:
- 基于 Git:通过 Git 操作使用标签或分支进行晋级
- Kustomize overlays:更新特定环境 overlay 中的镜像标签
- 自动更新:Flux ImageUpdateAutomation 的 semver 策略
6. 配置渐进式交付
针对高风险变更:
- ArgoCD Rollouts:通过自动分析进行金丝雀部署
- Flagger:基于指标晋级的渐进式交付
- 使用 Istio 或其他服务网格进行流量切换
- 分析失败时自动回滚
7. 制定回滚流程
Git 回滚:
- 使用
git revert撤销特定提交 - 通过更新 targetRevision,基于标签回滚
- 快速且声明式
特定工具:
- ArgoCD:使用版本历史记录执行
argocd app rollback - Flux:暂停自动化,手动回滚,然后恢复
常见错误
- 提交未加密的密钥——始终使用密钥管理解决方案
- 非生产环境没有自动同步——减慢开发反馈速度
- 生产环境启用自动同步但没有关卡——变更可能造成破坏,风险很高
- 忽视漂移检测——手动变更应进行协调或触发警报
- 没有运行状况检查——同步成功,但应用运行状况不佳
- 缺少依赖项排序——基础设施就绪前就部署应用
- 没有测试回滚——实际事故发生时才发现问题
- 环境不一致——预发布环境与生产环境差异过大
- 没有测试晋级流程——环境晋级过程中容易出现人为错误
- RBAC 权限控制薄弱——为 GitOps 服务账户授予过多权限
资源
- OpenGitOps:https://opengitops.dev/
- ArgoCD 文档:https://argo-cd.readthedocs.io/
- Flux 文档:https://fluxcd.io/docs/
- ArgoCD Rollouts:https://argoproj.github.io/argo-rollouts/
- Flagger:https://docs.flagger.app/
- External Secrets Operator:https://external-secrets.io/
- Sealed Secrets:https://github.com/bitnami-labs/sealed-secrets
- SOPS:https://github.com/mozilla/sops
评论
支持 Markdown