더북(TheBook)

궁금하면

Deployment가 이미 있는데 Rollout이라는 CRD가 또 필요해? 왜 K8s가 기본으로 이걸 안 넣어줘?

응답

K8s의 기본 Deployment는 Rolling Update만 지원합니다. Blue/Green이나 Canary는 설계 철학상 '단순한 Pod 교체'를 넘어선 영역이라 K8s 코어에 포함되지 않았습니다.
Blue/Green은 두 세트의 Pod를 동시에 띄워 놓고 트래픽만 바꾸는 구조이고, Canary는 메트릭을 보면서 트래픽 비율을 조절해야 합니다. 둘 다 단순한 replicas: N의 연장선이 아니라 별도의 상태 관리 로직이 필요합니다. 그래서 K8s는 이런 고급 전략을 CRD로 확장하는 길을 열어 뒀고, Argo Rollouts가 그 공간을 채운 구현체입니다.
Deployment를 쓰면 간단하지만 Blue/Green을 못 하고, Rollout을 쓰면 한 필드만 바꿔도 Blue/Green, Canary 그리고 Experiment까지 다 됩니다. 트레이드오프가 명확합니다.