目录
- [一. 简介](#一. 简介)
- [二. Argo CD](#二. Argo CD)
- [三. Argo Rollouts](#三. Argo Rollouts)
- [四. 总结](#四. 总结)
一. 简介
🔷云原生领域里由 Argo Project 提供的一套 建立在Kubernetes上的原生工具集,用来做 CI/CD、部署、工作流编排 等事情。
- 核心思想是:一切用 YAML 声明,然后由控制器自动执行(GitOps)。
| 功能 | Kubernetes | Argo |
|---|---|---|
| 部署应用 | Deployment | Argo CD |
| 发布策略 | 基础 rolling update | Rollouts(高级) |
| 工作流 | 没有 | Workflows |
| 自动化 | 很弱 | Events |

二. Argo CD
🔷Argo CD的作用
- 自动部署应用到 Kubernetes
- Git 仓库 = 真正的配置来源(GitOps)
bash
Git(YAML配置)
↓
Argo CD 自动同步
↓
Kubernetes 集群
- 查看
Argo CD管理的application的状态,例如application中的资源状态和GitLab中的是否相同。
bash
kubectl -n argocd get applications | grep keystore
- Synced:集群状态 等于 Git状态,已经同步
- OutOfSync:集群状态 不等于 Git状态,没有同步
- GitLab中的资源被修改,但没同步到集群中
- 手动使用
kubectl改过资源 - configmap 被修改了

- 查看指定application的信息
bash
kubectl -n argocd describe application application名称
- 查看指定application的定义文件
bash
kubectl -n argocd get application application名称 -o yaml
三. Argo Rollouts
🔷相比于Kubernetes原生的Deployment,Argo Rollouts是更加高级的发布策略,主要控制的是应用怎么上线。
-
普通 Kubernetes:
bash直接替换 Pod(风险大) -
Argo Rollouts:
bash新版本 → 10% → 30% → 100% ↓ 观察是否出问题
| 功能 | 说明 |
|---|---|
| 蓝绿发布 | Blue/Green |
| 金丝雀发布 | Canary |
| 灰度发布 | 分批上线 |
| 自动回滚 | 失败自动撤回 |
- 确认rollouts的名称
bash
kubectl -n cocoa get rollouts | grep mpl
- 重启指定的rollouts
- 安装了
kubectl-argo-rollouts插件之后才能使用argo命令
bash
kubectl argo rollouts restart rollouts名称 -n cocoa
四. 总结
🔷Kubernetes + Argo CD(GitOps) + Argo Rollouts(渐进式发布) = 云原生自动化发布体系
1️⃣ Kubernetes 👉 基础设施层
负责:
- 调度容器(Pod)
- 资源管理
- 服务发现
2️⃣ Argo CD 👉 部署控制层(核心)
负责:
- 从 GitLab 同步配置
- 自动 apply 到Kubernetes集群
3️⃣ Argo Rollouts 👉 发布策略层,控制如何上线。
负责:
- 灰度发布(Canary)
- 蓝绿发布(Blue/Green)
- 自动回滚
bash
GitLab(配置)
↓
Argo CD(负责"部署")
↓
Kubernetes(负责"运行")
↓
Argo Rollouts(负责"发布策略")
bash
Kubernetes 负责跑程序,
Argo CD 负责把代码部署上去,
Argo Rollouts 负责安全地一点点上线。