Ssoon
Argo Rollouts - 개념들 본문
🚀 Argo Rollouts Concepts 완전 이해 가이드
- Argo Rollouts는 Kubernetes 환경에서 더 정교한 배포 전략(Blue-Green, Canary 등)을 구현할 수 있게 해주는 강력한 도구입니다.
🧩 Rollout 이란?
- Rollout은 Kubernetes에서 Deployment와 유사한 Workload 리소스입니다.
즉, 기존 Deployment를 대체할 수 있으며, 더 고급스러운 배포 및 Progressive Delivery 기능을 제공합니다. - Rollout이 제공하는 주요 기능은 다음과 같습니다:
- Blue-Green deployments
- Canary deployments
- Ingress Controller / Service Mesh 연동으로 정교한 트래픽 라우팅 가능
- Metric Provider 통합을 통한 자동 분석
- 자동 프로모션 및 롤백 (배포 성공/실패 여부에 따라 자동 결정)
“Rollout은 단순 배포를 넘어, 자동화된 분석과 점진적 업데이트를 가능하게 하는 Deployment의 진화형입니다.”
⚙️ Progressive Delivery란?
- Progressive Delivery는 새로운 애플리케이션 버전을 점진적이고 통제된 방식으로 배포하는 프로세스입니다.
이는 배포 중 장애 위험을 줄이고, 자동화된 Metric 분석을 통해 배포 성공 여부를 판단하여 자동으로 프로모션(승격) 또는 롤백을 수행합니다.
🧠 CI/CD와의 관계
- 기존 Continuous Delivery(CD) 가 코드 변경을 빠르게 배포하는 데 초점을 맞췄다면, Progressive Delivery는 "속도 + 안정성"을 동시에 확보하는 접근법입니다.
- 일부 사용자에게만 새 버전을 먼저 노출
- 이상 유무를 관찰 및 분석
- 문제가 없을 경우 점진적으로 전체 사용자에게 확장
“Progressive Delivery는 Continuous Delivery의 다음 단계이며, ‘속도와 안정성’을 함께 추구하는 전략입니다.”
🧭 Deployment Strategies
- Argo Rollouts는 Blue-Green과 Canary 두 가지 전략만 공식 지원합니다.
🔁 Rolling Update
- 기본적인 Kubernetes Deployment의 기본 전략입니다.
새 버전이 올라오면 이전 버전의 Pod 수를 줄여가며 점진적으로 교체합니다.
“Rolling Update는 기본적이지만, 트래픽 제어나 Metric 기반 분석 같은 고급 기능은 제공하지 않습니다.”
💥 Recreate
- Recreate 전략은 이전 버전을 완전히 삭제한 후 새 버전을 배포합니다.
따라서 동시에 두 버전이 존재하지 않지만, 배포 중에는 Downtime이 발생합니다.
“Recreate는 단순하지만 서비스 중단을 감수해야 하는 배포 전략입니다.”
🟦 Blue-Green Deployment

- Blue-Green 은 새 버전과 기존 버전을 동시에 실행하면서, 실제 트래픽은 기존 버전(Blue) 으로만 전달하는 방식입니다.
- 이 방식은 새 버전에 대한 사전 테스트를 실서비스 환경에서 안전하게 진행할 수 있게 합니다.
테스트가 끝난 후, 트래픽을 한 번에 새 버전(Green) 으로 전환할 수 있습니다.
🔍 작동 방식
- 기존 버전(Blue)과 새 버전(Green)이 동시에 배포됨
- 프로덕션 트래픽은 Blue 버전으로만 전달
- Green 버전에 대해 사전 테스트 수행
- 테스트 완료 후 트래픽 스위칭 (Blue → Green)
“Blue-Green 배포는 한 번의 스위칭으로 새로운 버전을 즉시 활성화할 수 있는 안전하고 단순한 전략입니다.”
🐤 Canary Deployment

- Canary 배포는 전체 사용자 중 일부만 새로운 버전으로 라우팅하여 테스트하는 방식입니다.
이후 이상이 없으면 점진적으로 새 버전의 트래픽 비율을 늘려갑니다.
⚙️ 작동 방식
- 예를 들어, Argo Rollouts에서는 다음과 같은 단계로 정의할 수 있습니다.
steps:
- setWeight: 10
- pause: {}
- setWeight: 33
- pause: {}
- setWeight: 100
- 1단계: 10%의 트래픽을 새 버전으로 전달
- 2단계: 이상 없을 시 33%로 확대
- 3단계: 최종적으로 100%로 전환
- 이 과정에서 Ingress Controller나 Service Mesh (예: NGINX, Istio) 를 활용하면 트래픽을 헤더나 세션 기반으로 세밀하게 분리할 수 있습니다.
“Canary는 위험을 최소화하면서 점진적으로 트래픽을 확장해나가는 전략입니다.”
🧠 어떤 전략을 선택해야 할까?
- 초보자에게는 Blue-Green 방식이 가장 쉽고 안전합니다.
하지만 경험이 쌓이면 Canary로 전환해 더 세밀한 트래픽 제어와 자동화된 분석 기능을 활용할 수 있습니다.
“Blue-Green은 단순성과 안정성을, Canary는 세밀한 트래픽 제어와 유연성을 제공합니다.”
📌 핵심 요약
- Rollout은 Kubernetes Deployment의 확장 버전으로, 고급 배포 전략을 지원
- Progressive Delivery는 자동화된 점진 배포로 안정성을 확보하는 방법
- Blue-Green: 단순하고 안전한 방식, 한 번의 스위칭으로 트래픽 전환
- Canary: 점진적 트래픽 조정으로 위험 최소화 및 자동화 가능
- 추천 순서: 초보자는 Blue-Green → 숙련 후 Canary로 확장
“Argo Rollouts는 Kubernetes 배포를 ‘안전하고 지능적으로’ 진화시키는 도구입니다.”
'CICD Study [1기]' 카테고리의 다른 글
| Argo Rollouts - 배포 전략 (0) | 2025.10.19 |
|---|---|
| Argo Rollouts - Architecture (0) | 2025.10.19 |
| Argo Rollouts - Kubernetes 점진적 배포 컨트롤러 (0) | 2025.10.19 |
| Argo CD in Practice – 4) 접근 제어 : 단일 로그인 (0) | 2025.10.19 |
| Argo CD in Practice – 4) 접근 제어 : 서비스 계정 (0) | 2025.10.19 |
Comments