概述 - 目标:以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工作流,提升发布效率与回滚可靠性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部