Ssoon
Argo Rollouts - Kubernetes 점진적 배포 컨트롤러 본문
🚀 Argo Rollouts - Kubernetes Progressive Delivery Controller
- Argo Rollouts는 Kubernetes에서 배포 전략을 한 단계 더 진화시켜주는 강력한 Controller입니다.
단순한 Rolling Update보다 훨씬 정교하게 Blue-Green, Canary, Automated Rollback, Metric 기반 검증 등을 수행할 수 있습니다.
"Argo Rollouts는 안전하고 자동화된 Progressive Delivery를 가능하게 하는 Kubernetes의 핵심 Controller입니다."
🧩 What is Argo Rollouts?
- Argo Rollouts는 Kubernetes에 설치되어 동작하는 Controller와 Custom Resource Definitions(CRDs) 세트입니다.
이것은 Blue-Green, Canary, Experimentation 등 진보된 Deployment 기능을 제공합니다. - 또한, Ingress Controller나 Service Mesh와 연동하여 트래픽을 점진적으로 새로운 버전으로 전환할 수 있으며,
Prometheus, Datadog, New Relic 등 다양한 Metric Provider와 통합하여 자동 프로모션 또는 롤백을 수행할 수도 있습니다.
"Argo Rollouts는 배포 중 실시간으로 KPI를 분석하여 자동으로 프로모션 또는 롤백을 결정할 수 있습니다."
🎯 Why Argo Rollouts?

- 기본 Kubernetes Deployment는 RollingUpdate 전략을 제공합니다. 하지만 이 방식은 대규모 프로덕션 환경에서는 한계가 있습니다.
- 배포 속도를 세밀하게 제어하기 어렵습니다.
- 트래픽을 버전별로 분리하거나 점진적으로 전환할 수 없습니다.
- Readiness Probe만으로는 복잡한 검증을 수행하기 어렵습니다.
- 외부 Metric을 기반으로 배포 성공 여부를 판단할 수 없습니다.
- 문제가 발생해도 자동으로 Rollback하지 못합니다.
- 결국 RollingUpdate는 단순하고 빠르지만, 안전성과 제어력이 부족합니다.
Argo Rollouts는 이런 한계를 극복하기 위해 등장했습니다.
"Argo Rollouts는 배포의 '속도'보다 '안정성'과 '정밀 제어'에 초점을 맞춘 솔루션입니다."
⚙️ Controller Features
Argo Rollouts는 다양한 기능을 제공합니다.
🌀 배포 전략
- Blue-Green Update Strategy
- Canary Update Strategy
- Fine-grained, weighted traffic shifting
🧠 자동화 기능
- Automated Rollbacks and Promotions
- Manual Judgement 단계 지원
- Metric 기반 KPI 분석
🔗 통합 기능
- Ingress Controller Integration: NGINX, ALB, Apache APISIX
- Service Mesh Integration: Istio, Linkerd, SMI
- Metric Provider Integration: Prometheus, Datadog, New Relic, Wavefront, Graphite, InfluxDB 등
"Argo Rollouts는 다양한 인프라 구성요소와 연동해, 복잡한 배포 시나리오를 자동화합니다."
🔍 How does it work?
- Argo Rollouts는 Kubernetes의 기본 Deployment와 유사한 구조를 가집니다.
하지만 Rollout Object는 spec.strategy 필드를 통해 배포 방식(Blue-Green, Canary 등) 을 정의할 수 있습니다.
🧱 ReplicaSet 관리
- Rollouts Controller는 ReplicaSet을 생성, 스케일링, 삭제를 관리합니다.
- spec.template이 변경되면 새로운 ReplicaSet이 생성됩니다.
⚡ 배포 전환 과정
- 새 ReplicaSet이 준비되면 Controller는 지정된 Strategy에 따라 트래픽을 점진적으로 전환합니다.
- Metric Analysis가 통과하면 새 버전을 stable 상태로 표시합니다.
- 배포 도중 다시 변경이 생기면 이전 ReplicaSet은 자동으로 정리됩니다.
"Argo Rollouts는 ReplicaSet 간의 전환 과정을 자동으로 제어하여, 안정적인 Progressive Delivery를 구현합니다."
🧪 Use Cases of Argo Rollouts
Argo Rollouts는 다양한 상황에서 활용할 수 있습니다.
🧍♂️ 1. 배포 전 테스트 수행 (Blue-Green)
- 새 버전을 프로덕션 트래픽에 노출하기 전에 테스트를 진행할 수 있습니다.
preview service는 새 버전을, active service는 기존 버전을 처리합니다.
테스트 후 사용자가 승인하면 새 버전이 active로 승격됩니다.
"Blue-Green 전략은 안전한 사전 검증을 가능하게 합니다."
🌈 2. Pre-Traffic Steps 수행 (Blue-Green)
- 새 버전이 실제 트래픽을 받기 전,DB 마이그레이션이나 Config 검증 같은 사전 작업을 수행할 수 있습니다.
모든 준비가 끝나면 Rollouts가 트래픽을 전환합니다.
"Blue-Green은 트래픽 이전 전 단계에서도 완벽한 제어를 제공합니다."
🎯 3. 부분 트래픽 전환 (Canary)
- 새 버전에 일정 비율의 트래픽만 전달하여 실시간 성능을 모니터링합니다.
예를 들어, 10%의 트래픽만 새 버전으로 보내고 성능이 좋다면 전체로 확장할 수 있습니다.
"Canary 전략은 실시간 사용자 반응을 기반으로 배포 결정을 내릴 수 있습니다."
⏳ 4. 점진적 트래픽 증가 (Canary Progressive)
- 초기에는 5%, 이후 25%, 50%, 100% 순으로 점진적으로 트래픽을 증가시키며 배포를 진행합니다.
각 단계 사이에 일정 시간 간격을 두어 안정성을 확보할 수 있습니다.
"점진적 트래픽 증가 전략은 리스크를 최소화한 배포를 가능하게 합니다."
🔄 5. Rolling Update 모방 (Canary with no steps)
- Canary 전략에서 별도의 steps를 지정하지 않으면,
기존 RollingUpdate와 동일하게 maxSurge 및 maxUnavailable 값에 따라 배포가 진행됩니다.
"Canary 전략은 기존 RollingUpdate의 상위호환으로 동작할 수 있습니다."
📌 핵심 요약
- Argo Rollouts는 Kubernetes에서 Blue-Green, Canary, Progressive Delivery를 지원하는 Controller입니다.
- Ingress Controller나 Service Mesh와 연동해 트래픽을 점진적으로 제어할 수 있습니다.
- Metric Provider와 통합하여 KPI 기반 자동 프로모션/롤백을 수행합니다.
- Blue-Green 전략은 사전 테스트 및 안전한 전환을 가능하게 하고,
Canary 전략은 트래픽 비율 기반의 점진적 배포를 제공합니다. - 설치는 간단하며, 실제 운영환경에서 배포 안정성을 크게 향상시킬 수 있습니다.
"Argo Rollouts는 Kubernetes 배포를 '안전하고 자동화된 프로세스'로 진화시킵니다."
'CICD Study [1기]' 카테고리의 다른 글
| Argo Rollouts - Architecture (0) | 2025.10.19 |
|---|---|
| Argo Rollouts - 개념들 (0) | 2025.10.19 |
| Argo CD in Practice – 4) 접근 제어 : 단일 로그인 (0) | 2025.10.19 |
| Argo CD in Practice – 4) 접근 제어 : 서비스 계정 (0) | 2025.10.19 |
| Argo CD in Practice – 4) 접근 제어 : 선언적 사용자 (0) | 2025.10.19 |
Comments