---
title: Argo CD GitOps应用同步与健康检查实践
keywords:
- Argo CD
- Application
- syncPolicy
- health
- selfHeal
- prune
description: 使用Argo CD将应用声明式托管,提供可验证的Application清单与同步/健康检查命令,保障持续一致。
date: 2025-11-26
categories:
- 文章资讯
- 技术教程
---
概述
- 目标:以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工作流,提升发布效率与回滚可靠性。

发表评论 取消回复