カスタムステージによるGKEロールアウト・シーケンシング

Google CloudのGKEでは、デフォルトのリージョンごとのスケジュールに従うのではなく、独自のビジネスロジックに基づいたカスタムステージによるロールアウト・シーケンシングを使用して、クラスターのアップグレード順序を正確に指定できるようになりました。

数十、数百もの環境にわたってKubernetesクラスターをアップグレードするのは、非常に困難な作業です。セキュリティパッチは定期的に提供されますが、同時に本番サービスの稼働を維持する必要もあります。従来のリージョン単位のアップグレードモデルでは、ステージング環境での検証が完了する前に、本番クラスターに新しいコントロールプレーンのバージョンが適用されてしまうことがあり、フリートが未テストの変更にさらされるリスクがありました。

旧モデルの限界

リージョン単位のロールアウトでは、そのリージョン内のすべてのクラスターを一つの塊として扱います。アップグレードウィンドウが開くと、クラスターがリリースパイプラインのどこにあるかにかかわらず、コントロールプレーンとノードが並行してアップグレードされます。「カナリアから本番へ」という厳格なフローに依存しているチームでは、アップグレードの順序が前後してしまうことがあり、それが特定の変更に起因すると特定しにくいリグレッションを引き起こす可能性があります。そのコストはダウンタイムだけではありません。早期に発見できたはずの問題のデバッグに費やされるエンジニアリング時間も含まれます。

GKEロールアウト・シーケンシングによる追加機能

新しい機能では、一連のステージを定義する RolloutSequence オブジェクトが導入されます。各ステージはラベルセレクターによって識別される、フリートの論理的な区分です。システムは以下の決定論的なパスに従います。

  • コントロールプレーンのアップグレードを優先: GKEは、ノードに手を加える前に、中央管理コンポーネントをターゲットのバージョンに移行します。
  • ソークタイマーの開始: コントロールプレーンがターゲットに到達した後、設定可能な遅延(ソークタイマー)が実行され、ヘルスチェックを行うための猶予時間が設けられます。
  • ノードのアップグレードを並行実行: ソークタイマーがカウントダウンされている間に、GKEはノードをアップグレードし、クラスターを迅速に新しいバージョンへと収束させます。
  • 完了後にのみ次のステージを開始: 現在のステージのすべてのノードとコントロールプレーンが完了し、ソークタイマーが終了すると、GKEは次のステージに進みます。

フリートをラベル付けされた小さなグループに分割することで、まず少数のカナリアクラスターをアップグレードして、モニタリングやトラフィックルーティングのルールが期待通りに動作することを確認してから、同じバージョンを本番環境の残りの部分に展開できます。

シーケンスを健全に保つためのルール

  • キャッチオール・ステージ: 最終ステージではラベルセレクターを省略します。これにより、それ以前のステージにマッチしなかったクラスターも確実にアップグレードを受けられるようになります。
  • 競合解決: クラスターのラベルが複数のステージに適合する場合、GKEはそれを最初に一致したステージに配置し、意図しない二重アップグレードを防ぎます。

リアルタイムのコントロール機能

ロールアウトの実行中も、コントロール権を維持できます。

  • Pause(一時停止): さらなるアップグレードを停止します。これにより、問題を波及させることなく、カナリアステージでの失敗を調査できます。
  • Force-complete(強制完了): 検証スクリプトが早期に成功を報告した場合、残りのソーク時間をスキップしてロールアウトを加速させます。
  • Cancel(キャンセル): 新しくリリースされたバージョンに重大なバグが見つかった場合、シーケンス全体を中止し、ロールバックするか修正パッチを待つことができます。

誰が恩恵を受け、どのようなトレードオフがあるのか

次に注目すべきこと

まとめ

カスタムステージによるロールアウト・シーケンシングは、プラットフォームが規定する順序ではなく、ビジネスの要求に応じた順序でクラスターをアップグレードする能力をGKEオペレーターに提供します。コントロールプレーンとノードのアップグレードを分離し、設定可能なソーク期間を追加し、一時停止/強制完了/キャンセルのアクションを提供することで、この機能はクラウドネイティブなチームが必要とするスピードを維持しながら、アップグレードのリスクを軽減します。フリート全体のKubernetesアップグレードの混乱に直面しているすべての人にとって、この新しいシーケンシングモデルは、より安全でビジネスに即した自動化に向けた具体的な一歩となります。