Argo CD 核心概念回顾
在深入节点池自动同步巡检方案之前,必须统一对 Argo CD 五大核心概念的理解。这些概念构成了所有巡检规则、同步策略和配置一致性判断的基础。以下从 Application、Project、Repository、Cluster、Sync Policy 五个维度展开,并结合它们在巡检场景中的角色进行说明。
2.1 Application(应用)
Application 是 Argo CD 中描述“期望状态”的原子单元。它定义了从哪个 Git 仓库、哪个路径、同步到哪个目标集群与命名空间,以及如何执行同步。在节点池巡检中,每个节点池对应的部署配置通常映射为一个或多个 Application。
| 字段 | 说明 | 巡检关注点 |
|---|---|---|
| Source | Git 仓库 URL、目标路径、Helm Values 文件 | 路径是否与节点池版本匹配 |
| Destination | 目标集群 API Server URL + 命名空间 | 集群标识是否与节点池归属一致 |
| Sync Policy | 自动同步、Prune、Self-Heal 开关 | 策略是否与节点池运维等级对齐 |
| Revision History Limit | 保留的历史版本数 | 是否满足审计回溯要求 |
spec.source.targetRevision 必须与节点池基线版本号一致,否则会导致配置漂移。
2.2 Project(项目)
Project 是 Argo CD 中的逻辑隔离单元,用于管理 Application 的访问权限、资源配额和同步约束。在节点池巡检中,Project 决定了哪些团队可以修改节点池配置,以及是否允许跨集群同步。
- Source Repositories:允许引用的 Git 仓库白名单
- Destinations:允许部署的目标集群与命名空间
- Cluster Resource Blacklist/Whitelist:集群级别资源管控
- Sync Windows:同步时间窗口限制
destinations 列表是否包含节点池对应的集群。
2.3 Repository(仓库)
Repository 是 Argo CD 连接 Git 仓库的凭证与配置对象。节点池的 Helm Chart、Kustomize 覆盖层、纯 YAML 清单均通过 Repository 对象注册到 Argo CD。
| 仓库类型 | 连接方式 | 巡检检查项 |
|---|---|---|
| HTTPS | 用户名 + / 无认证 | 是否过期 |
| SSH | SSH 私钥 | 私钥是否被轮换 |
| Helm Repository | Helm Chart 仓库 URL | Chart 版本是否可拉取 |
2.4 Cluster(集群)
Cluster 对象代表 Argo CD 可以部署应用的目标 Kubernetes 集群。节点池巡检的核心任务之一就是验证每个节点池对应的 Cluster 对象是否健康、凭证是否有效、标签是否匹配。
# 查看 Argo CD 中注册的集群列表
argocd cluster list
# 输出示例
SERVER NAME STATUS MESSAGE
https://192.168.1.10:6443 prod-az1 Success
https://192.168.1.20:6443 prod-az2 Success
https://192.168.1.30:6443 staging Success
- STATUS=Success:集群连接正常
- STATUS=Failed:集群不可达或凭证错误
- STATUS=Unknown:尚未完成连接验证
labels 中应包含节点池标识(如 node-pool: gpu-large),以便 Application 通过 label selector 匹配。
2.5 Sync Policy(同步策略)
Sync Policy 定义了 Application 如何与 Git 仓库中的期望状态保持一致。节点池自动同步场景下,策略配置直接影响配置一致性的收敛速度与风险控制。
| 策略参数 | 可选值 | 节点池巡检建议 |
|---|---|---|
| Automated Sync | true / false | 生产节点池必须开启 |
| Prune | true / false | 开启,确保废弃资源被清理 |
| Self-Heal | true / false | 开启,自动修复手动变更 |
| Sync Options | Validate / SkipDryRun / ApplyOutOfSyncOnly | 建议启用 ApplyOutOfSyncOnly 减少 API 调用 |
| Retry | 次数 + 间隔 | 至少 3 次重试,间隔 30s |
2.6 五大概念关系图
以下 SVG 展示了 Application、Project、Repository、Cluster、Sync Policy 之间的依赖与数据流关系,帮助理解节点池自动同步巡检的上下文。
2.7 节点池巡检视角下的概念映射
将上述五个概念映射到节点池自动同步巡检场景,形成以下对应关系:
| Argo CD 概念 | 节点池巡检中的具体含义 | 巡检指标示例 |
|---|---|---|
| Application | 每个节点池的完整部署配置 | 节点池名称、版本号、副本数 |
| Project | 节点池所属环境(dev/staging/prod) | 允许的目标集群白名单 |
| Repository | 节点池配置的 Git 源 | 分支、路径、Helm Values 文件 |
| Cluster | 节点池实际运行的集群 | 集群健康状态、标签匹配度 |
| Sync Policy | 节点池配置的自动同步规则 | Self-Heal 是否开启、Prune 是否启用 |