Ssoon

Argo Rollouts - 개념들 본문

CICD Study [1기]

Argo Rollouts - 개념들

구구달스 2025. 10. 19. 19:34

 

🚀 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

https://www.allwin-solutions.com/post/how-to-do-a-zero-downtime-deployment-using-azure-kubernetes-service

  • Blue-Green 은 새 버전과 기존 버전을 동시에 실행하면서, 실제 트래픽은 기존 버전(Blue) 으로만 전달하는 방식입니다.
  • 이 방식은 새 버전에 대한 사전 테스트를 실서비스 환경에서 안전하게 진행할 수 있게 합니다.
    테스트가 끝난 후, 트래픽을 한 번에 새 버전(Green) 으로 전환할 수 있습니다.

🔍 작동 방식

  1. 기존 버전(Blue)과 새 버전(Green)이 동시에 배포됨
  2. 프로덕션 트래픽은 Blue 버전으로만 전달
  3. Green 버전에 대해 사전 테스트 수행
  4. 테스트 완료 후 트래픽 스위칭 (Blue → Green)

“Blue-Green 배포는 한 번의 스위칭으로 새로운 버전을 즉시 활성화할 수 있는 안전하고 단순한 전략입니다.”


🐤 Canary Deployment

https://www.allwin-solutions.com/post/how-to-do-a-zero-downtime-deployment-using-azure-kubernetes-service

  • 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 배포를 ‘안전하고 지능적으로’ 진화시키는 도구입니다.”

Comments