Argo CD
技术

Argo CD

面向 Kubernetes 的 GitOps 持续交付工具

Argo CD 是一款声明式的、基于 GitOps 的 Kubernetes 持续交付工具。它让集群的实时状态与 Git 仓库中定义的期望状态保持同步,这样部署就变成了合并一个拉取请求,而不是对集群执行命令式操作。

工作原理

Argo CD 作为控制器运行在 Kubernetes 集群内部。它持续将一个或多个 Git 仓库中声明的内容与实际运行的内容进行比较,既可以只提示漂移,也可以自动将其修正。由于期望状态存放在 Git 中,每一次变更都有版本记录、可被审查,也可以通过团队已在用于代码的同一套拉取请求流程来回退。

核心概念

  • Application —— Argo CD 管理的基本单元:将 Git 仓库中的一个路径映射到目标集群和命名空间。
  • Sync policy(同步策略) —— 控制 Argo CD 是在 Git 一有变化就自动应用,还是等待手动同步。
  • Health 与 sync 状态 —— Argo CD 同时跟踪资源是否健康(例如 Pod 是否在运行)以及是否与 Git 一致(已同步、未同步或未知)。
  • Projects(项目) —— 将应用分组,并限制它们可以使用的仓库、集群和资源类型。

为什么团队选择 Argo CD 实践 GitOps

  • 默认可审计。 集群的每一次变更都有对应的提交,通常还有一个经过审查的拉取请求。
  • 回滚简单。 回退一次部署只需 git revert,而不是在压力之下手动执行 kubectl 操作。
  • 跨环境一致。 无论你面对的是单个命名空间还是几十个集群,都适用同一套调谐模型。
  • 漂移检测。 直接在集群上做的修改会立即显示为”out of sync”,而不是悄悄偏离 Git 中的记录。

快速开始

将 Argo CD 安装到 Kubernetes 集群中,将其指向包含你清单的 Git 仓库(纯 YAML、Helm chart 或 Kustomize overlay 均可),并定义一个 Application 资源把两者关联起来。下面的指南将带你走过最常见的配置,从单个应用到管理多个集群。