LabHub
배우기 러닝패스 코스

CAPA — Argoプロジェクト認定アソシエイト

カナリアが実際に転がるのを見る

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

이 실습은 진짜 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

목표

카나리부터 자동 롤백까지, 실제로 굴려서 확인합니다.

단계

  1. Rollout 을 만들고 첫 배포가 어떻게 다른지 /root/capa/first.txt 에 담으세요.
  2. 이미지를 바꿔 카나리가 실제 파드 수로 나타나는 것을 /root/capa/canary.txt 에 담으세요.
  3. 멈춘 것을 진행시키고 그 기록을 /root/capa/promote.txt 에 담으세요.
  4. 성공하는 분석을 붙여 통과하는 것을 /root/capa/analysis.txt 에 담으세요.
  5. 실패하는 분석으로 자동 롤백을 일으켜 /root/capa/rollback.txt 에 담으세요.
  6. abortundo 의 차이를 /root/capa/abort.txt 에 담으세요.
  7. 블루그린으로 두 판이 동시에 도는 것을 /root/capa/bluegreen.txt 에 담으세요.
  8. /root/capa/report.mdcanary_pods=, auto_rollback=yes, bluegreen_paused=yes 세 줄과 설명을 쓰세요.

참고

첫 배포는 카나리를 건너뛴다

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 는 다르다

abortundo 의 차이를 /root/capa/abort.txt 에 담으세요.

하나는 트래픽만, 다른 하나는 스펙까지 되돌립니다.

두 판이 동시에 돈다

블루그린으로 두 판이 동시에 도는 것을 /root/capa/bluegreen.txt 에 담으세요.

activeServicepreviewService 를 만들면 컨트롤러가 셀렉터를 대신 손봅니다.

무엇을 배웠나

/root/capa/report.mdcanary_pods=, auto_rollback=yes, bluegreen_paused=yes 세 줄과 설명을 쓰세요.

canary_pods=, auto_rollback=yes, bluegreen_paused=yes 세 줄과 설명을 쓰세요.