概述目标:以Git为单一事实源,Argo CD自动同步到集群并进行健康检查与自愈,确保状态一致。适用:Kubernetes应用的声明式交付、版本化回滚、跨环境一致性治理。核心与实战Application清单:apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: web namespace: argocd spec: project: default source: repoURL: 'https://github.com/org/repo' targetRevision: main path: charts/web destination: server: https://kubernetes.default.svc namespace: prod syncPolicy: automated: selfHeal: true prune: true syncOptions: - CreateNamespace=true ignoreDifferences: - group: apps kind: Deployment name: web namespace: prod jsonPointers: - /spec/replicas 示例通过CLI创建与同步:argocd app create web --repo https://github.com/org/repo --path charts/web --dest-server https://kubernetes.default.svc --dest-namespace prod argocd app sync web argocd app wait web --health --timeout 300 查看健康与历史:argocd app get web argocd app history web 验证与监控状态一致性:检查`Sync Status`是否为`Synced`,`Health Status`是否为`Healthy`。差异与自愈:修改集群资源触发`OutOfSync`,验证`selfHeal`自动纠正。访问控制:使用`Project`限制源与目的;启用RBAC确保最小权限。常见误区未开启`prune`导致残留资源;需在`syncPolicy.automated`中启用。忽视`ignoreDifferences`导致副本数差异被判不一致;按需忽略非Git受控字段。将手工改动直接在集群进行而不更新Git;应以Git为唯一事实源。结语通过Argo CD的声明式同步与健康治理,可实现稳定的GitOps工作流,提升发布效率与回滚可靠性。

发表评论 取消回复