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