Skip to content
返回部署

ArgoCD GitOps

K8s GitOps 持续交付 — 同步 git 仓库到集群状态。

CI/CD高级

为什么

ArgoCD 监视 git 仓库并同步到 K8s 集群。Git 是真相源 — 每变更可审计,回滚是 git revert。

DORA 2024 DevOps 状态报告显示精英团队部署频率比低绩效团队高 973 倍。带自动化测试的 CI/CD 管道将变更失败率降至 5-15%,而手动部署为 40-60%。

何时使用

K8s GitOps 用 ArgoCD。非 K8s 避免(多集群用 Flux)。

如何做

1. 安装 — 集群中 argocd install 2. 应用 — 从 git 仓库 argocd app create 3. 同步 — 自动或手动同步 4. 健康 — ArgoCD 检查应用健康 5. 回滚 — git revert,ArgoCD 同步 6. 多集群 — 注册外部集群 7. App-of-apps — 管理多应用

示例

# 安装 ArgoCD kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml # 从 git 创建应用 argocd app create myapp --repo https://github.com/user/k8s-manifests --path apps/myapp --dest-server https://kubernetes.default.svc --dest-namespace default --sync-policy auto # Application CRD apiVersion: argoproj.io/v1alpha1 kind: Application metadata: { name: myapp, namespace: argocd } spec: source: { repoURL: https://github.com/user/k8s-manifests, path: apps/myapp } destination: { server: https://kubernetes.default.svc, namespace: default } syncPolicy: { automated: { prune: true, selfHeal: true } }

常见问题

  • ⚠应用不同步 — 集群手动变更,ArgoCD 检测漂移
  • ⚠同步失败 — 清单错误,ArgoCD UI 查同步状态
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓自动同步配 selfHeal — ArgoCD 回滚手动变更,git 是真相
  • ✓用 app-of-apps 模式 — 一应用管多应用,层次 GitOps
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答