介绍

Argo CD 是一个非常流行的开源 GitOps 工具。使用 Argo CD 需要理解以下核心概念:

  1. Application:由清单定义的一组 Kubernetes 资源。这是一个自定义资源定义(CRD)。Application
  2. ApplicationSet:支持 ApplicationSet CRD 的 Kubernetes 控制器,能够从单个模板批量生成 Applications。可以将其视为基于参数创建实例的 Application 工厂。ApplicationSet
  3. Tool:指定 Application 源的配置管理工具(例如 Kustomize、Helm)。Tool
  4. Sync:将应用的实时状态与期望状态进行调和的过程(例如,将变更应用到 Kubernetes 集群)。Sync
  5. Health:表示应用的运行状态,包括就绪情况和服务请求能力。Health

Application 与 ApplicationSet 的差异总结

属性ApplicationApplicationSet
定义单个应用部署用于生成多个 Application 实例的模板
配置静态 YAML 定义基于参数的动态模板生成
部署单个应用多个相似应用
使用场景简单的单环境部署需要参数化实例的复杂多环境/多集群部署
核心概念Git 仓库、目标集群、部署策略生成器、模板、参数、占位符
在 Argo CD 中的角色基础部署单元高级批量管理层

Argo CD 同步状态

同步状态描述
Synced应用的实时状态完全匹配期望状态。
OutOfSync实时状态与期望状态不一致,需要同步。
Syncing正在进行同步,实时状态正在向期望状态收敛。

参考资料