【あるごろーるあうつ】

Argo Rollouts とは?

最終更新:
💡 新しい版への展開手順を制御する

Kubernetesにカスタムリソースとコントローラーを追加し、カナリアやブルーグリーンなどのデプロイを制御するツール。設定した手順やメトリクスの分析結果に応じて、展開を進めたり中断したりできる。

📌 このページのポイント
Argo Rollouts:カナリアを制御する Rolloutの手順をコントローラーが管理設定したルーターの重みを制御利用者対応ルーター通信を振り分け旧版新版90%10%AnalysisRun設定した条件でメトリクスを評価分析結果で継続・中断・一時停止中断時は新版の重みを0へ
対応ルーターと分析を設定した例。90%・10%は振り分けの重みです。連携なしではPod数で指定割合に近づけます。
ひよこ ひよこ
標準のDeploymentと何が違うの?
ペンギン先生 ペンギン先生
Deploymentの組み込み戦略にはRecreateとRollingUpdateがあるよ。Argo Rolloutsは、追加のCRDで定義するRolloutを専用コントローラーで管理し、カナリアやブルーグリーンの手順を宣言できるんだ。
ひよこ ひよこ
新しい版へ少しずつ通信を流せる?
ペンギン先生 ペンギン先生
カナリアならsetWeightとpauseなどで段階を設定できるよ。ただしトラフィック管理を連携させない構成では、旧版と新版のPod数を調整して指定割合に近づける。少数のPodで細かな割合を制御したければ、対応するIngressやサービスメッシュとの連携を使うんだ。
ひよこ ひよこ
問題があれば勝手に元へ戻る?
ペンギン先生 ペンギン先生
分析を設定した場合の話だよ。AnalysisRunは設定したメトリクスや条件を評価し、結果に応じて展開を継続、中断、一時停止する。カナリアの分析が失敗して中断すると、新版への重みを0に戻す。何を測り、どこで失敗とするかを準備する必要があるんだ。
ひよこ ひよこ
人の確認を入れることもできる?
ペンギン先生 ペンギン先生
できるよ。pauseで期間を指定すればその時間だけ待ち、期間を指定しなければ手動で解除するまで止まる。ブルーグリーンでは、新版をプレビューしてから本番の接続先を切り替える使い方もあるんだ。
ひよこ ひよこ
Argo CDと一緒に使うとGitも元に戻る?
ペンギン先生 ペンギン先生
Argo CDはGitで宣言したマニフェストをクラスターに同期し、RolloutsはRolloutの変化に応じて展開を進めるよ。Rollouts自体はGitを読み書きしない。展開を中断して旧版に通信を戻しても、Gitのコミットが自動で取り消されるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Argo Rollouts」って出てきたら「Kubernetesで展開手順を制御するコントローラー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Argo Rollouts」 = Argoのリリース展開ツール
💬 Argoはプロジェクト群の名前で、Rolloutsはソフトウェアの展開を表す言葉。段階や切り替えを制御する役割を示しているよ。

参考資料

← 用語集にもどる