Argo CD 概览与 GitOps 基础
Argo CD 是 Kubernetes 的声明式持续交付控制器。它把 Git 中的清单视为目标环境的期望状态,持续比较 Git、渲染结果与集群实际状态,并在授权范围内同步差异。它不是替代构建系统的“发布脚本”,而是让部署状态可审阅、可追溯、可恢复的调谐器。
1. GitOps 的最小闭环

GitOps 的关键不是“YAML 放进 Git”,而是以下约束:
- Git 是可审阅的期望状态来源;
- 集群变更通过受控的同步器执行,而不是让每条 CI 都持有生产集群管理员权限;
- Git 外的手工改动被识别为 drift,并有明确的处置策略;
- 回滚优先通过回退 Git 提交或版本标签完成。
2. 与 Jenkins、Argo Rollouts 的分工
| 组件 | 主要职责 | 不应承担的职责 |
|---|---|---|
| Jenkins / GitLab CI | 编译、测试、制品和镜像构建、更新部署仓库 | 直接长期管理生产集群资源 |
| Argo CD | 渲染、比较、同步 Git 声明到 Kubernetes | 编译业务代码、替代镜像构建 |
| Argo Rollouts | 金丝雀、蓝绿等渐进发布控制 | Git 仓库同步和多环境应用编排 |
典型流程是 CI 更新不可变镜像标签或 Helm/Kustomize 参数,Argo CD 检测 Git 变更后同步;需要渐进发布时,Argo CD 管理 Rollout CR,而 Argo Rollouts 控制流量与副本切换。
3. 核心对象
| 对象 | 作用 |
|---|---|
Application | 一份源仓库、渲染方式、目标集群和同步策略的声明 |
AppProject | 应用可访问的仓库、集群、Namespace 与资源白名单边界 |
ApplicationSet | 按集群、目录、列表等生成大量 Application |
| Repository / Cluster Secret | Argo CD 访问 Git、Helm 仓库和目标集群的凭据 |
4. 学习路径
- 先完成安装、CLI 登录和仓库接入;
- 用一个手工同步的 Application 理解渲染与健康状态;
- 再启用自动同步、Prune 与 Self Heal;
- 使用 AppProject、RBAC 和多集群建立边界;
- 最后引入 ApplicationSet、高可用、通知和运维治理。