アップグレード


このページでは、Google Kubernetes Engine(GKE)の自動アップグレードについて説明します。

ロールアウト スケジュール

GKE は、数日間のロールアウト スケジュールに従い、新しいバージョンを利用可能にするとともに、クラスタ コントロール プレーンとノードを自動アップグレードします。通常、ロールアウトの期間は 4 営業日以上になります(ロールアウトは週末 / 祝日に一時停止します)。これには、問題の観察とモニタリングのためのバッファ時間も含まれます。

自動アップグレード

新しい GKE Standard クラスタはデフォルト バージョン、つまり最近の Kubernetes のマイナー バージョンまたはパッチリリースの安定版リリースで作成されます。デフォルトより新しいバージョンも、週単位で一般提供されています。Autopilot クラスタは、代わりにリリース チャンネルに登録されます(デフォルトは standard)。

メンテナンスの時間枠と除外対象を構成することで、自動アップグレードのタイミングを管理することもできます。

バージョニングで GKE のバージョンを確認します。

クラスタ コントロール プレーンの自動アップグレード

クラスタがリリース チャンネルに登録されているかどうかにかかわらず、GKE チームが定期的にクラスタ コントロール プレーンの自動アップグレードを行います。コントロール プレーンは、新しい安定版の Kubernetes にアップグレードされます。通常、自動アップグレードは、数週間にわたって段階的に実施されます。インフラストラクチャのセキュリティは GKE において優先度の高い事項であるため、コントロール プレーンは定期的にアップグレードされ、無効にすることはできません。ただし、メンテナンスの時間枠と除外を適用すると、コントロール プレーンとノードのアップグレードを一時停止できます。

コントロール プレーンが直近でいつ更新されたのかを確認するには、次のコマンドを実行します。

gcloud container operations list --filter="TYPE:UPGRADE_MASTER AND TARGET:CLUSTER_NAME"

CLUSTER_NAME は、使用するクラスタの名前に置き換えます。

ノードの自動アップグレード

このセクションは、Standard モードで作成されたクラスタにのみ適用されます。Autopilot クラスタでは、ノードは常にコントロール プレーンのバージョンに自動的にアップグレードされます。

Standard クラスタを作成すると、デフォルトでクラスタのノードに対して自動アップグレードが有効になります。既存のノードプールでは、ノードの自動アップグレードを有効にできます。

GKE ノードのバージョンを選択する際は、次の点を考慮してください。

  • ノードでは現在利用可能なバージョンを実行する必要があります。
  • ノードは、クラスタの現在のコントロール プレーン バージョンより新しいバージョンを実行できません。
  • ノードのバージョンは、コントロール プレーンの 2 つ前のマイナー バージョン以降でなければなりません。

セキュリティと互換性を確保するための自動ノード アップグレード

クラスタでノードの自動アップグレードを有効にしていない場合、セキュリティと互換性を確保するために、Google が自動的にノードをアップグレードすることがあります。自動アップグレードの主な理由としては次のものが挙げられますが、これらに限定されません。

  • サポート終了バージョンを使用しているクラスタ。
  • サポート終了バージョンを実行しているノード。
  • 放棄されたクラスタ、つまりアクティビティのない実行状態のクラスタ(API 呼び出し、トラフィック、サブネットがないなど)。
  • 状態ループのクラスタ、つまり、実行から劣化、修復、一時停止、そして実行に戻るというように状態がループしているクラスタ。