クラスタのアップグレードの可視性を高める


このページでは、Google Kubernetes Engine(GKE)クラスタのアップグレードに関する情報を取得する方法について説明します。GKE は、時間の経過とともにすべてのクラスタを自動的にアップグレードします。GKE がクラスタをアップグレードする際、GKE は Kubernetes コントロール プレーンとワーカーノードのバージョンを個別のオペレーションで更新します。

GKE は、クラスタのアップグレードに関する情報を集約して、クラスタのステータスを把握できるようにします。クラスタの次の情報を取得できます。

  • 自動アップグレードのターゲット: GKE がクラスタのターゲットとする新しいバージョン(クラスタの既存のバージョンと制約に応じた、パッチまたは新しいマイナー バージョンのいずれか)を確認します。自動アップグレード ターゲットがない場合、クラスタはすでに最新のアップグレード ターゲット上にあるか、技術的な理由またはビジネス上の理由で GKE が自動アップグレード ターゲットを割り当てていません。GKE リリースノートのバージョン アップデート2024-R33 ノートなど)で、クラスタのマイナー バージョンに基づいて一般的な自動アップグレード ターゲットを取得することもできます。
  • 自動アップグレードのステータス: GKE クラスタは、クラスタのアップグレードのステータスを持ちます。このステータスを使用して、現在のアップグレードと、クラスタを自動的にアップグレードするタイミングを選択する際に GKE が考慮する制約(メンテナンスの除外やアップグレードを妨げる理由など)を確認します。詳細については、クラスタの自動アップグレードのステータスをご覧ください。
  • アップグレード履歴: GKE は、クラスタの最近のコントロール プレーン アップグレードとノード アップグレード(自動アップグレードと手動アップグレードの両方)のスナップショットを提供します。コントロール プレーンとノードの最近のアップグレードについては、次のような詳細を確認できます。

    • バージョン: 初期バージョンとターゲット バージョン。
    • 状態: アップグレードがまだ完了していないかどうか、あるいは成功、失敗、キャンセルのいずれであるか。
    • 時間: 開始時間と終了時間。
    • 開始タイプ: アップグレードが自動的にトリガーされたか手動でトリガーされたか。
  • サポート終了日: GKE はマイナー バージョンを最長 24 か月間サポートします。詳細については、GKE のマイナー バージョン ライフサイクルをご覧ください。現在のすべてのマイナー バージョンのサポート終了日については、リリース チャンネルのおおよそのスケジュールをご覧ください。

  • クラスタ イベント: GKE は、アップグレードの開始または完了、新しいバージョンのリリース、セキュリティに関する公開情報、サポート終了日などの特定のイベントについて、Cloud Logging にクラスタ通知を送信します。GKE は Cloud Logging でこれらのイベントを自動的に表示しますが、これらの通知を Pub/Sub に転送することもできます。詳細については、クラスタ通知をご覧ください。

始める前に

作業を始める前に、次のことを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。

クラスタのアップグレードに関する情報を取得する

クラスタのアップグレードに関する情報は、Google Cloud コンソールまたは gcloud CLI を使用して取得できます。

プロジェクト レベルでアップグレードに関する情報を取得する

プロジェクト全体のクラスタ アップグレードに関する集計情報を取得するには、[アップグレード] ダッシュボードを使用します。

Google Cloud コンソールで [アップグレード] ダッシュボードに移動します。

[アップグレード] に移動

このダッシュボードのタブには、次のようなアップグレードに関する関連情報が集約されます。

  • コントロール プレーンとノードの最近のアップグレードのステータス
  • アップグレードのクラスタ通知ログ
  • アップグレードに関連する推奨事項
  • 特定のマイナー バージョンのサポート終了タイムライン
  • 各リリース チャンネルのクラスタ数

クラスタレベルでアップグレード情報を取得する

コンソール

  1. Google Cloud コンソールで [Kubernetes クラスタ] ページに移動します。

    [Kubernetes クラスタ] に移動

  2. クラスタの名前を選択して、[クラスタの詳細] ページを表示します。

  3. [クラスタの詳細] ページの [クラスタのアップグレード] セクションを確認します。

gcloud

次のコマンドを実行します。

gcloud container clusters get-upgrade-info CLUSTER_NAME

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

Standard クラスタのノードプールのアップグレード情報を取得する

Standard クラスタの個々のノードプールの公開設定を取得できます。このセクションは、GKE がノードを管理し、管理対象のノードプールがない Autopilot クラスタには適用されません。

コンソール

  1. Google Cloud コンソールで [Kubernetes クラスタ] ページに移動します。

    [Kubernetes クラスタ] に移動

  2. クラスタの名前をクリックして、詳細を表示します。

  3. [ノード] タブをクリックします。

  4. [ノードプール] セクションで、アップグレード情報を取得するノードプールの名前をクリックします。

  5. [ノードプールの詳細] ページの [アップグレード] セクションを確認します。

gcloud

次のコマンドを実行します。

gcloud container node-pools get-upgrade-info POOL_NAME
    --cluster=CLUSTER_NAME

POOL_NAME は、ノードプールの名前に置き換えます。

クラスタの自動アップグレードのステータス

クラスタの自動アップグレードのステータスは次のとおりです。

  • ACTIVE: アクティブなアップグレード ステータス。
  • UNKNOWN: アップグレード ステータスが不明。
  • MINOR_UPGRADE_PAUSED: マイナー バージョンのアップグレードが一時停止中。
  • UPGRADE_PAUSED: すべての自動アップグレードが一時停止中。

GKE がクラスタの自動アップグレードを一時停止する可能性がある理由は次のとおりです。

  • MAINTENANCE_WINDOW: メンテナンスの時間枠によりクラスタのアップグレードが妨げられている。
  • MAINTENANCE_EXCLUSION_: この接頭辞が付いた一時停止の理由は、メンテナンスの除外によってクラスタのアップグレードが妨げられていることを示している。接尾辞はメンテナンスの除外のスコープを示す(MAINTENANCE_EXCLUSION_NO_UPGRADES など)。
  • CLUSTER_DISRUPTION_BUDGET: クラスタの作成やアップグレードなどの特定のオペレーションの後、クラスタとそのアプリケーションの安定性と可用性を保護するために、クラスタにはクールダウン期間が必要。
  • CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE: クラスタがマイナー バージョン アップグレードのクラスタ停止予算の範囲外。
  • SYSTEM_CONFIG: 技術的またはビジネス上の理由により、自動アップグレードが一時停止中。このステータスでは、必要な場合を除き、手動アップグレードを行わないことをおすすめします。
  • AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED: 理由不明。

クラスタ アップグレードの一般的なシナリオに関する情報

クラスタ アップグレードの管理中に発生する可能性のある一般的なシナリオについて説明します。

クラスタの次回のアップグレードの予定を確認する

新しいバージョンへのアップグレードの計画と選定のためにクラスタの次回のアップグレードの予定を確認するには、次のリソースを使用します。

  • リリース スケジュール: リリース チャンネルのおおよそのスケジュールで、クラスタのマイナー バージョンとリリース チャンネルに対応する自動アップグレードの推定日付を確認します。
  • クラスタレベルでアップグレード情報を取得する: クラスタの自動アップグレード ターゲットを確認します。
  • クラスタ通知: 新しいバージョンがチャンネルで利用可能になると、GKE から通知が送信されます。新しいバージョンが利用可能になると、GKE はチャンネルの自動アップグレード ターゲットとしてそのバージョンを指定します。タイミングはチャンネルによって異なります。これらの通知を表示するには、Cloud Logging でクラスタ通知を表示するときに UpgradeAvailableEvent でフィルタします。
  • リリースノート: リリースノートで、GKE が新しいマイナー バージョンをチャンネルの自動アップグレード ターゲットとして設定するタイミングを確認できます。

クラスタの次のアップグレードをブロックしている原因を確認する

アップグレードのブロックを解除するためにブロックされている理由を確認するには、クラスタの自動アップグレードのステータスを確認します。自動アップグレードが一時停止されている場合は、その理由を確認します。次のいずれかの方法を使用します。

クラスタのアップグレードが完了するタイミングを確認する

ワークロードが想定どおりに動作することを確認するためにクラスタのコントロール プレーンとノードのアップグレードが完了するタイミングを確認するには、次のリソースを使用します。

アップグレードにかかる時間を確認する

アップグレードにかかる時間を確認するには、クラスタレベルでアップグレード情報を取得して、過去のアップグレードの所要時間を調べます。アップグレード履歴で最近の例を確認します。

アップグレードの所要時間は、アップグレードの対象がコントロール プレーンであるかノードであるかに加え、アップグレード戦略、Pod Disruption Budget(PDB)、有効なメンテナンス ポリシーなどの要因によって異なります。

クラスタのマイナー バージョンのサポート終了日を確認する

GKE は、サポートが終了したマイナー バージョンをまだ実行しているクラスタを自動的にアップグレードします。詳細については、サポート終了時の自動アップグレードをご覧ください。

メンテナンスの除外を設定する、非推奨の API が使用できなくなる日を確認するなどの目的で、クラスタのマイナー バージョンのサポート終了日を確認するには、次のリソースを使用します。

次のステップ