argocd sync option介绍
argocd sync option 介绍
ArgoCD 的 sync 选项用于将集群状态与 Git 仓库中定义的期望状态同步。它支持多种参数和策略,用于控制同步的行为和资源处理方式。
用途
同步操作的主要目的是确保 Kubernetes 集群中的资源与 Git 仓库中声明的配置一致。以下是常见的用途:
- 手动触发同步以应用最新的 Git 变更
- 强制执行资源更新(如强制替换、重新创建等)
- 处理资源冲突或修复漂移状态
- 选择性同步部分资源而非整个应用
常用 sync 选项
基本同步
默认情况下,argocd app sync 会同步整个应用的所有资源:
argocd app sync <APPLICATION_NAME>
选择性同步
可以通过 --resource 参数仅同步特定资源:
argocd app sync <APPLICATION_NAME> --resource <GROUP:NAME:KIND>
强制同步
在某些情况下(如资源卡住或状态不一致),可能需要强制同步:
argocd app sync <APPLICATION_NAME> --force
同步策略
ArgoCD 支持以下同步策略:
-
自动同步(Automated Sync)
启用后,ArgoCD 会自动检测 Git 变更并触发同步。 -
手动同步(Manual Sync)
需要手动执行argocd app sync来应用变更。 -
同步策略选项(Sync Options)
--prune:删除 Git 中已移除但集群中仍存在的资源。--dry-run:仅模拟同步,不实际更改集群状态。
高级同步选项
-
部分同步(Partial Sync)
仅同步部分资源,适用于调试或特定更新需求。 -
忽略差异(Ignore Differences)
通过.spec.ignoreDifferences配置,避免某些字段的差异触发同步。 -
钩子同步(Sync Hooks)
支持在同步前/后执行自定义操作(如数据库迁移)。
示例
强制同步并清理旧资源:
argocd app sync my-app --force --prune
选择性同步 Deployment:
argocd app sync my-app --resource apps:my-deployment:Deployment
同步策略配置示例(Application CRD):
spec:syncPolicy:automated:prune: trueselfHeal: true
通过灵活使用这些选项,可以高效管理 Kubernetes 资源的同步行为。
