동기화에서 벗어난 ArgoCD 앱 찾기
언제 쓸까: 매주: 어떤 클러스터의 어떤 앱이 OutOfSync 또는 Degraded 상태인가, 그 이유는?
사전 조건
- 읽기 범위의 ArgoCD API 토큰 — argocd account generate-token --account <read-only-user>
- ArgoCD 서버 URL —
ARGOCD_SERVER=argocd.my.company.com
흐름
-
상태를 포함한 앱 목록 조회모든 ArgoCD 앱을 나열합니다. 각각: 이름, 프로젝트, 동기화 상태, 상태, 마지막 동기화 시간.✓ 복사됨→ 전체 인벤토리
-
동기화 편차에 집중syncStatus != 'Synced' 또는 health != 'Healthy'인 앱으로 필터링합니다. 마지막 동기화 이후 시간으로 순위를 매깁니다.✓ 복사됨→ 문제 앱 목록
-
특정 앱 비교앱 <name>의 원하는 상태(git)와 실제 상태 간의 diff를 표시합니다. 어떤 리소스가 동기화되지 않았는가?✓ 복사됨→ 리소스 수준 diff
결과: 주간 편차 보고서로 어떤 앱이 주의가 필요하고 그 이유를 식별합니다.
함정
- 합법적인 런타임 전용 리소스로 인한 편차(예: HPA 스케일된 레플리카) — 런타임에 변경되는 필드를 제외하도록 Application spec에서 ignoreDifferences를 구성하십시오.