PaaS/CI CD
Argo Rollout으로 Canary 배포하기
armyost
2023. 11. 15. 14:31
728x90
Argo Rollout을 Canary 전략으로 배포를 설명한다.
ArgoCD를 통 아래 Github url로 배포한다.
https://github.com/armyost/ArgoRollout
GitHub - armyost/ArgoRollout
Contribute to armyost/ArgoRollout development by creating an account on GitHub.
github.com
1차적으로 blue버전으로 rollout을 배포한다.
처음에는 파란색으로만 서비스가 된다.
두번째로 blue를 green 버전으로 변경한 'rollout-canary'를 ArgoCD에서 다시 'Sync'한다.
# AS-IS
spec:
containers:
- name: canary-rollouts-demo
image: argoproj/rollouts-demo:blue
imagePullPolicy: Always
ports:
- containerPort: 8080
# TO-BE
spec:
containers:
- name: canary-rollouts-demo
image: argoproj/rollouts-demo:green
그러면 확률적으로 25%의 Green 서비스가 보인다.
비중을 보면 거의 25% 쯤되겠다.
비중을 더 늘려 테스트를 하거나 테스트가 충분하다고 생각이 들면 Promote하여 완전히 Green 버전으로 서비스한다.
$ kubectl argo rollouts promote -n argo-sample-app rollout-canary