3.5. 롤아웃 수동 중단
카나리아 배포를 사용하는 경우 롤아웃은 애플리케이션의 초기 카나리아 버전을 배포합니다. 수동으로 확인하거나 프로그래밍 방식으로 확인할 수 있습니다. 카나리아 버전을 확인하고 stable로 승격하면 모든 사용자가 새 안정 버전을 사용할 수 있습니다.
그러나 카나리아 버전에서 버그, 오류 또는 배포 문제가 발견되고 카나리아 롤아웃을 중단하고 애플리케이션의 안정적인 버전으로 롤백해야 하는 경우가 있습니다.
카나리아 롤아웃을 중단하면 새 카나리아 버전의 리소스가 삭제되고 이전 버전의 안정적인 애플리케이션을 복원합니다. 카나리아로 전달 중인 수신, 경로 또는 가상 서비스와 같은 모든 네트워크 트래픽은 원래의 안정적인 버전으로 돌아갑니다.
다음 예제 절차에서는 애플리케이션 의
새 카나리아 버전을 배포한 다음, 안정적인 것으로 완전히 승격되기 전에 이를 중단합니다.
프로세스
Argo Rollouts CLI에서 다음 명령을 실행하여 컨테이너 이미지 버전을 업데이트하고
argoproj/rollouts-demo:yellow
에서argoproj/rollouts-demo:red
로.spec.template.spec.containers.image
값을 수정합니다.oc argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:red -n <namespace>
$ oc argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:red -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR(사용자 정의 리소스)이 정의된 네임스페이스를 지정합니다.
출력 예
rollout "rollouts-demo" image updated
rollout "rollouts-demo" image updated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 롤아웃에 배포된 컨테이너 이미지가 수정되고 롤아웃에서 새 카나리아 배포를 시작합니다.
- 롤아웃이 일시 중지된 상태에 도달할 때까지 기다립니다.
롤아웃이
rollouts-demo:red
카나리아 버전을 배포하고 다음 명령을 실행하여 일시 중지된 상태에 도달하는지 확인합니다.oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
$ oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 롤아웃 업데이트를 중지합니다.
oc argo rollouts abort rollouts-demo -n <namespace>
$ oc argo rollouts abort rollouts-demo -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
rollout 'rollouts-demo' aborted
rollout 'rollouts-demo' aborted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Argo Rollouts 컨트롤러는 애플리케이션의 카나리아 리소스를 삭제하고 안정적인 버전으로 롤백합니다.
롤아웃을 중단한 후 다음 명령을 실행하여 카나리아
ReplicaSet
이 0 복제본으로 확장되었는지 확인합니다.oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
$ oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 롤아웃 상태는 애플리케이션이 이전 안정 버전으로 롤백되었지만 현재 롤아웃이 원하는 버전인
빨간색
이 아니며.spec.template.spec.containers.image
필드 내에 설정된 롤아웃이 없음을 나타냅니다.참고Degraded
상태는 애플리케이션의 상태를 반영하지 않습니다. 이는 원하는 컨테이너 이미지 버전과 실행 중인 컨테이너 이미지 버전이 일치하지 않음을 나타냅니다.다음 명령을 실행하여 컨테이너 이미지 버전을 이전 안정 버전,
노란색
으로 업데이트하고.spec.template.spec.containers.image
값을 수정합니다.oc argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:yellow -n <namespace>
$ oc argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:yellow -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
rollout "rollouts-demo" image updated
rollout "rollouts-demo" image updated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 롤아웃은 분석 및 승격 단계를 건너뛰고 이전 안정된 버전,
노란색
및 빠른 속도로 롤백하여 안정적인ReplicaSet
배포를 추적합니다.다음 명령을 실행하여 롤아웃 상태가
Healthy
로 즉시 표시되는지 확인합니다.oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
$ oc argo rollouts get rollout rollouts-demo --watch -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Rollout
CR이 정의된 네임스페이스를 지정합니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow