3.3. 롤아웃 업데이트
.spec.template.spec
필드(예: 컨테이너 이미지 버전)를 수정하여 롤링 CR(사용자 정의 리소스)을 업데이트하면 업데이트된 컨테이너 이미지 버전을 사용하여 ReplicaSet
을 통해 새 Pod가 생성됩니다.
프로세스
롤아웃에 배포된 컨테이너 이미지를 수정하여 애플리케이션의 새 카나리아 버전을 시뮬레이션합니다.
-
웹 콘솔의 관리자 화면에서 Operator
설치된 Operator Red Hat OpenShift GitOps 롤아웃 으로 이동합니다. -
기존
rollouts-demo
롤아웃을 선택하고 YAML 보기에서argoproj/rollouts-demo:blue
toargoproj/rollouts-demo:yellow
에서.spec.template.spec.containers.image
값을 수정합니다. 저장을 클릭한 다음 다시 로드 를 클릭합니다.
롤아웃에 배포된 컨테이너 이미지가 수정되고 롤아웃에서 새 카나리아 배포를 시작합니다.
참고Rollout
CR의.spec.strategy.canary.steps
필드에 정의된setWeight
속성에 따라 처음 경로에 대한 트래픽의 20%가 카나리아 버전에 도달하고 승격 요청이 수신될 때까지 롤아웃이 무기한 일시 중지됩니다.카나리아 버전으로 전송되는 트래픽의 20%가 있고 승격 요청이 후속 단계에서 지정될 때까지 롤아웃이 무기한 정지되는 경로의 예
spec: replicas: 5 strategy: canary: 1 steps: 2 - setWeight: 20 3 - pause: {} 4 # (...)
-
웹 콘솔의 관리자 화면에서 Operator
다음 명령을 실행하여 롤아웃 진행을 확인합니다.
$ oc argo rollouts get rollout rollouts-demo --watch -n <namespace> 1
- 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
Name: rollouts-demo Namespace: spring-petclinic Status: ॥ Paused Message: CanaryPauseStep Strategy: Canary Step: 1/8 SetWeight: 20 ActualWeight: 20 Images: argoproj/rollouts-demo:blue (stable) argoproj/rollouts-demo:yellow (canary) Replicas: Desired: 5 Current: 5 Updated: 1 Ready: 5 Available: 5 NAME KIND STATUS AGE INFO ⟳ rollouts-demo Rollout ॥ Paused 9m51s ├──# revision:2 │ └──⧉ rollouts-demo-6cf78c66c5 ReplicaSet ✔ Healthy 99s canary │ └──□ rollouts-demo-6cf78c66c5-zrgd4 Pod ✔ Running 98s ready:1/1 └──# revision:1 └──⧉ rollouts-demo-687d76d795 ReplicaSet ✔ Healthy 9m51s stable ├──□ rollouts-demo-687d76d795-75k57 Pod ✔ Running 9m50s ready:1/1 ├──□ rollouts-demo-687d76d795-jsxg8 Pod ✔ Running 9m50s ready:1/1 ├──□ rollouts-demo-687d76d795-rsgtv Pod ✔ Running 9m50s ready:1/1 └──□ rollouts-demo-687d76d795-xrmrj Pod ✔ Running 9m50s ready:1/1
롤아웃의 업데이트 전략 구성에 지정된 일시 중지 기간이 없기 때문에 롤아웃이 일시 중지된 상태입니다.
이전 단계를 반복하여 새로 배포된 버전의 애플리케이션을 테스트하고 예상대로 작동하는지 확인합니다. 예를 들어 브라우저를 통해 애플리케이션과 상호 작용하여 애플리케이션을 확인하고 테스트를 실행하거나 컨테이너 로그를 관찰합니다.
롤아웃은 다음 단계로 이동할 때까지 일시 중지된 상태로 유지됩니다.
새 버전의 애플리케이션이 예상대로 작동하는지 확인한 후 승격을 계속하거나 롤아웃을 중단할지 여부를 결정할 수 있습니다. 따라서 "출처 제공" 또는 "수동적으로 롤아웃 중단"의 지침을 따르십시오.