このページでは、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 呼び出し、トラフィック、サブネットがないなど)。
- 状態ループのクラスタ、つまり、実行から劣化、修復、一時停止、そして実行に戻るというように状態がループしているクラスタ。