カナリアが実際に転がるのを見る
このラボは本物のArgo Rolloutsで動きます
VMの中に、Rolloutsコントローラーが実際に起動しています。Podが本当に起動し、分析がJobを起動して判定し、失敗すれば実際に巻き戻ります。
前のモジュールのRolloutsのラボは、疑似クラスターで動いていました。Podが起動しないため、カナリアが何%なのか見られず、何より分析が動きませんでした。分析は、Jobを起動して、その結果で判定するのに、Jobが動かないので、判定そのものがありません。自動ロールバックはCAPAの核心なのに、それが丸ごと抜け落ちていました。
初回の起動には、3分ほどかかります。
用意されているもの
네임스페이스 demo
컨트롤러 argo-rollouts 네임스페이스
CLI kubectl argo rollouts
미리 받은 이미지 argoproj/rollouts-demo 의 blue · yellow · red, busybox:1.36
このコードブロックの韓国語は、ネームスペースがdemoであること、コントローラーがargo-rolloutsネームスペースにあること、CLIがkubectl argo rolloutsであること、あらかじめ取得済みのイメージがargoproj/rollouts-demoのblue・yellow・redとbusybox:1.36であることを説明しています。
目標
カナリアから自動ロールバックまで、実際に動かして確認します。
ステップ
- Rolloutを作成して、最初のデプロイがどう違うかを残してください(保存先:
/root/capa/first.txt)。 - イメージを変えて、カナリアが実際のPodの数で表れることを残してください(保存先:
/root/capa/canary.txt)。 - 止まったものを進めて、その記録を残してください(保存先:
/root/capa/promote.txt)。 - 成功する分析を付けて、通過することを残してください(保存先:
/root/capa/analysis.txt)。 - 失敗する分析で自動ロールバックを起こして、残してください(保存先:
/root/capa/rollback.txt)。 abortとundoの違いを残してください(保存先:/root/capa/abort.txt)。- ブルーグリーンで、2つのバージョンが同時に動くことを残してください(保存先:
/root/capa/bluegreen.txt)。 canary_pods=、auto_rollback=yes、bluegreen_paused=yesの3行と説明を書いてください(保存先:/root/capa/report.md)。
参考
- 状態は、
kubectl argo rollouts -n demo get rollout <이름>(プレースホルダーはRollout名です)で見ます。kubectl get rolloutでは、ほとんど見えません。 - イメージの入れ替えは、
kubectl argo rollouts -n demo set image <이름> demo=<이미지>(プレースホルダーはRollout名とイメージです)です。 - 1つのステップに90秒あります。
pauseは無期限にして、promoteで進めるほうが、時間を節約できます。 - よくある間違い: 最初のデプロイでカナリアを期待すること。比べる安定版がないため、ステップを飛ばします。
- よくある間違い: ロールバックされたから、
specも戻っただろうと信じること。specはそのままです。
最初のデプロイはカナリアを飛ばす
Rolloutを作成して、最初のデプロイがどう違うかを残してください(保存先: /root/capa/first.txt)。
比べる安定版がなければ、分けて送るトラフィックもありません。
25%はPodいくつか
イメージを変えて、カナリアが実際のPodの数で表れることを残してください(保存先: /root/capa/canary.txt)。
ウェイトはトラフィックの比率ですが、トラフィックルーティングがなければ、Podの数で近似します。
止まったものを進める
止まったものを進めて、その記録を残してください(保存先: /root/capa/promote.txt)。
promoteは1ステップ、promote --fullは残りのステップすべてです。
人の代わりに判定させる
成功する分析を付けて、通過することを残してください(保存先: /root/capa/analysis.txt)。
AnalysisTemplateのjobプロバイダーは、Jobを起動して、終了コードで判定します。
失敗するとひとりでに巻き戻る
失敗する分析で自動ロールバックを起こして、残してください(保存先: /root/capa/rollback.txt)。
分析が失敗すると、RolloutはDegradedになって、安定版に戻ります。specはそのままです。
abortとundoは違う
abortとundoの違いを残してください(保存先: /root/capa/abort.txt)。
片方はトラフィックだけを、もう片方はspecまで戻します。
2つのバージョンが同時に動く
ブルーグリーンで、2つのバージョンが同時に動くことを残してください(保存先: /root/capa/bluegreen.txt)。
activeServiceとpreviewServiceを作成すると、コントローラーがセレクターを代わりに調整します。
何を学んだか
canary_pods=、auto_rollback=yes、bluegreen_paused=yesの3行と説明を書いてください(保存先: /root/capa/report.md)。
canary_pods=、auto_rollback=yes、bluegreen_paused=yesの3行と説明を書いてください。