カナリアが実際に転がるのを見る
한국어 원문으로 표시합니다.
이 실습은 진짜 Argo Rollouts 에서 돕니다
VM 안에 Rollouts 컨트롤러가 실제로 떠 있습니다. 파드가 진짜로 뜨고, 분석이 Job 을 띄워 판정하고, 실패하면 실제로 되돌아갑니다.
앞 모듈의 Rollouts 실습은 가짜 클러스터에서 돌았습니다. 파드가 뜨지 않으니 카나리가 몇 퍼센트인지 볼 수 없고, 무엇보다 분석이 돌지 않았습니다 — 분석은 Job 을 띄워 그 결과로 판정하는데 Job 이 돌지 않으니 판정 자체가 없습니다. 자동 롤백은 CAPA 의 핵심인데 그것이 통째로 빠져 있었습니다.
처음 뜨는 데 3분쯤 걸립니다.
준비된 것
네임스페이스 demo
컨트롤러 argo-rollouts 네임스페이스
CLI kubectl argo rollouts
미리 받은 이미지 argoproj/rollouts-demo 의 blue · yellow · red, busybox:1.36
목표
카나리부터 자동 롤백까지, 실제로 굴려서 확인합니다.
단계
- Rollout 을 만들고 첫 배포가 어떻게 다른지
/root/capa/first.txt에 담으세요. - 이미지를 바꿔 카나리가 실제 파드 수로 나타나는 것을
/root/capa/canary.txt에 담으세요. - 멈춘 것을 진행시키고 그 기록을
/root/capa/promote.txt에 담으세요. - 성공하는 분석을 붙여 통과하는 것을
/root/capa/analysis.txt에 담으세요. - 실패하는 분석으로 자동 롤백을 일으켜
/root/capa/rollback.txt에 담으세요. abort와undo의 차이를/root/capa/abort.txt에 담으세요.- 블루그린으로 두 판이 동시에 도는 것을
/root/capa/bluegreen.txt에 담으세요. /root/capa/report.md에canary_pods=,auto_rollback=yes,bluegreen_paused=yes세 줄과 설명을 쓰세요.
참고
- 상태는
kubectl argo rollouts -n demo get rollout <이름>으로 봅니다.kubectl get rollout으로는 거의 안 보입니다. - 이미지 교체는
kubectl argo rollouts -n demo set image <이름> demo=<이미지>입니다. - 단계 하나에 90초가 있습니다.
pause는 무기한으로 두고promote로 넘기는 편이 시간을 아낍니다. - 흔한 실수: 첫 배포에서 카나리를 기대하는 것. 비교할 안정 판이 없으므로 단계를 건너뜁니다.
- 흔한 실수: 롤백됐으니
spec도 돌아갔을 거라 믿는 것. 스펙은 그대로입니다.
첫 배포는 카나리를 건너뛴다
Rollout 을 만들고 첫 배포가 어떻게 다른지 /root/capa/first.txt 에 담으세요.
비교할 안정 판이 없으면 나눠 보낼 트래픽도 없습니다.
25% 는 파드 몇 개인가
이미지를 바꿔 카나리가 실제 파드 수로 나타나는 것을 /root/capa/canary.txt 에 담으세요.
가중치는 트래픽 비율이지만, 트래픽 라우팅이 없으면 파드 수로 근사합니다.
멈춘 것을 넘긴다
멈춘 것을 진행시키고 그 기록을 /root/capa/promote.txt 에 담으세요.
promote 는 한 단계, promote --full 은 남은 단계 전부입니다.
사람 대신 판정하게 한다
성공하는 분석을 붙여 통과하는 것을 /root/capa/analysis.txt 에 담으세요.
AnalysisTemplate 의 job 제공자는 Job 을 띄워 종료 코드로 판정합니다.
실패하면 저절로 되돌아간다
실패하는 분석으로 자동 롤백을 일으켜 /root/capa/rollback.txt 에 담으세요.
분석이 실패하면 Rollout 은 Degraded 가 되고 안정 판으로 돌아갑니다. 스펙은 그대로입니다.
abort 와 undo 는 다르다
abort 와 undo 의 차이를 /root/capa/abort.txt 에 담으세요.
하나는 트래픽만, 다른 하나는 스펙까지 되돌립니다.
두 판이 동시에 돈다
블루그린으로 두 판이 동시에 도는 것을 /root/capa/bluegreen.txt 에 담으세요.
activeService 와 previewService 를 만들면 컨트롤러가 셀렉터를 대신 손봅니다.
무엇을 배웠나
/root/capa/report.md 에 canary_pods=, auto_rollback=yes, bluegreen_paused=yes 세 줄과 설명을 쓰세요.
canary_pods=, auto_rollback=yes, bluegreen_paused=yes 세 줄과 설명을 쓰세요.