쿠버네티스 환경에서 무중단 배포를 넘어 '안전한 배포'를 고민하신다면, Argo Rollouts의 Analysis 기능은 선택이 아닌 필수입니다.
오늘은 배포의 성패를 가르는 4가지 핵심 트리거: Pre/PostSyncAnalysis와 Pre/PostPromotionAnalysis의 차이점을 상세히 분석하고, 어떤 상황에서 어떤 기능을 써야 하는지 완벽하게 정리해 드리겠습니다. 🚀
배포 버튼을 누르고 "제발 문제없어라"라고 기도하던 시대는 끝났습니다. Argo Rollouts는 배포의 각 단계마다 AnalysisRun을 실행해 메트릭(Prometheus, Datadog 등)을 체크하고, 자동으로 승인하거나 롤백합니다.
그중에서도 특히 헷갈리기 쉬운 4가지 분석 시점에 대해 깊게 파헤쳐 보겠습니다.

1. Sync와 Promotion: 용어부터 정리합시다! 💡
본격적인 비교에 앞서, 두 단어의 의미를 명확히 해야 합니다.
- Sync (동기화): 사용자가 kubectl apply를 하거나 GitOps 도구가 새로운 상태를 클러스터에 반영하는 행위 자체를 의미합니다.
- Promotion (승격): 카나리(Canary) 배포에서 1단계(예: 트래픽 10%)가 성공하여 다음 단계(예: 트래픽 50% 또는 전체 배포)로 넘어가는 단계를 의미합니다.
2. PreSync & PostSync Analysis: "배포의 시작과 끝을 감시하라" 🔍
이 기능들은 주로 배포 시점을 기준으로 작동합니다.
① PreSyncAnalysis (동기화 전 분석)
새로운 버전의 Pod이 생성되기 직전에 실행됩니다.
- 언제 쓸까요?
- 현재 클러스터의 건강 상태가 새로운 앱을 받아들일 준비가 되었는지 확인할 때.
- 외부 의존성(DB, API 서버 등)이 활성화되어 있는지 체크할 때.
- 특징: 여기서 실패하면 새 버전 배포 자체가 시작되지 않습니다.
② PostSyncAnalysis (동기화 후 분석)
새로운 리소스가 클러스터에 생성된 직후에 실행됩니다.
- 언제 쓸까요?
- 새로운 버전의 Pod이 Ready 상태가 된 직후, 아주 기본적인 헬스체크를 수행할 때.
- 본격적인 트래픽 이동 전, 설정값들이 올바르게 반영되었는지 검증할 때.
3. PrePromotion & PostPromotion Analysis: "성공의 관문을 지켜라" 🚪
이 기능들은 배포 전략(Strategy) 내의 단계(Steps) 이동과 관련이 있습니다.
① PrePromotionAnalysis (승격 전 분석)
카나리 단계에서 트래픽을 다음 단계로 더 많이 넘기기 직전에 실행됩니다.
- 언제 쓸까요?
- "자, 이제 10% 트래픽에서 50%로 늘릴 건데, 지금까지 받은 10% 트래픽 데이터가 깨끗한가?"를 물어볼 때.
- 수동 승인(Manual Pause)이 풀린 직후, 최종 확인 작업을 자동화할 때.
② PostPromotionAnalysis (승격 후 분석)
트래픽 비중을 높인 직후에 실행됩니다.
- 언제 쓸까요?
- 트래픽이 대폭 늘어난 직후(예: 10% -> 100%), 부하를 견디지 못해 발생하는 지연 시간(Latency)이나 에러율을 즉시 감지할 때.
- 완전한 배포(Full Promotion) 후 일정 시간 동안 안정성을 유지하는지 지켜볼 때.
4. 코드 실전 예제: Rollout 정의하기 💻
이해를 돕기 위해 각 분석 단계가 포함된 Rollout YAML 예시를 준비했습니다. 주석을 통해 각 시점을 확인해 보세요.
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: advanced-canary-rollout
spec:
replicas: 5
strategy:
canary:
# 1. 배포가 시작되기 전/후에 실행되는 분석 (Sync 관련)
analysis:
templates:
- templateName: cluster-health-check
# PreSync: 배포 시작 전 체크
preSync: {}
# PostSync: 배포 리소스 생성 후 체크
postSync: {}
steps:
- setWeight: 20
- pause: {duration: 5m}
# 2. 단계 이동(Promotion) 시 실행되는 분석
- analysis:
templates:
- templateName: http-error-rate
# PrePromotion: 20% -> 50%로 넘어가기 직전에 실행
prePromotion: {}
# PostPromotion: 20% -> 50%로 넘어간 직후에 실행
postPromotion: {}
- setWeight: 50
- pause: {} # 수동 승인 대기
- setWeight: 100
5. 핵심 요약 테이블: 무엇을 선택할 것인가? 📊
| 기능 | 실행 시점 | 주요 목적 | 비유 |
| PreSync | 배포 시작 전 | 인프라/의존성 최종 점검 | "경기장 문 열어도 될까?" |
| PostSync | 배포 직후 | 초기 환경 설정 검증 | "선수들 유니폼 잘 입었나?" |
| PrePromotion | 다음 단계 이동 전 | 현재 트래픽 데이터 기반 합격 판정 | "1세트 잘했으니 2세트 갈까?" |
| PostPromotion | 다음 단계 이동 후 | 확장된 트래픽에서의 안정성 감시 | "관중 늘었는데 사고 안 나나?" |
6. 결론: 전략적인 분석 설계 🏁
- 가장 중요한 것: PrePromotionAnalysis입니다. 카나리 배포의 본질인 "일부 사용자에게만 테스트"한 결과를 바탕으로 다음 단계 진행 여부를 결정하기 때문입니다.
- 인프라가 불안정하다면: PreSyncAnalysis를 적극 활용하여 불필요한 배포 시도를 차단하세요.
- 갑작스러운 부하가 걱정된다면: PostPromotionAnalysis를 통해 트래픽 급증 시 즉각 대응하세요.
이제 Argo Rollouts의 Analysis 기능을 활용해, 잠잘 때도 안심할 수 있는 자동화된 배포 시스템을 구축해 보세요! 🛠️
태그: ArgoRollouts, Kubernetes, GitOps, CanaryDeployment, AnalysisRun, DevOps, 무중단배포, 자동화, 클라우드네이티브, 프로메테우스
'클라우드 > Argo' 카테고리의 다른 글
| 🧹 Argo Workflows 리소스 정리 마스터: ttlStrategy vs podGC 완벽 분석 (0) | 2026.01.03 |
|---|---|
| 🔄 ArgoCD Replace 기능 완벽 가이드: Patch가 안 될 때의 필살기 (0) | 2026.01.03 |
| 🐙 쿠버네티스 자동화의 정점: Argo Project 4종 세트 완벽 정리 (0) | 2026.01.03 |
| 🛠 ArgoCD ApplicationSet Generator 완벽 가이드: 자동화의 끝판왕 (0) | 2026.01.03 |
| ⚡ Argo Events 완벽 가이드: Sensor, EventBus 그리고 트리거의 모든 것 (0) | 2026.01.02 |