メンテナンス イベントをモニタリングする

このドキュメントでは、コマンドラインと GKE メンテナンス ダッシュボードを使用してホスト メンテナンス オペレーションを表示する方法について説明します。

ホスト メンテナンス オペレーションを表示すると、ワークロードの中断を軽減できます。特に、インフラストラクチャの定期的な中断によってワークロードが中断される可能性がある、長時間実行される GKE クラスタの場合に有効です。

GKE でのホスト メンテナンスの詳細については、 GKE でホスト メンテナンスを行う方法についてをご覧ください。

メンテナンス通知をモニタリングする

VM でスケジュールされたメンテナンス イベントが発生する前に、 Compute Engine からすべての VM に通知が送信されます。Compute Engine メンテナンスの時間枠の開始時刻が報告されます。今後のメンテナンスが VM によってスケジュールされたが有効になっていない場合、GKE はノードラベルに scheduled-maintenance-time を追加します。

今後のメンテナンス イベントをモニタリングして検出するには、GKE と Compute Engine の両方からの通知を表示する必要があります。

Compute Engine で今後のメンテナンスを表示する

Compute Engine issues notifications when nodes and their underlying VMs are scheduled for disruptive host events, and when these events become active. 通知には、予定されている開始時刻やイベントの種類などの情報が含まれます。

GKE で今後のメンテナンスを表示する

GKE バージョン 1.31.1-gke.2008000 以降では、特定のマシンタイプで今後のメンテナンス イベントをモニタリングできます。

  • GPU または TPU がアタッチされているマシンタイプの場合、1.31.1-gke.2008000 以降
  • 18 TiB を超える SSD を備えた Z3 マシンタイプの場合、1.32.4-gke.1376000 以降
  • H4D マシンタイプの場合、1.32.6-gke.1060000 以降
  • c4a-highmem-96-metal の場合、1.35.0-gke.2232000 以降

今後のメンテナンス イベントを表示するには、次のいずれかの操作を行います。

ホスト メンテナンスの Kubernetes イベントを表示する

GKE バージョン 1.35 以降では、ホスト メンテナンスのライフサイクルを追跡する Kubernetes イベントが出力されます。これらの Kubernetes イベントを使用すると、スケジュールされた Compute Engine ウィンドウ、進行中のオペレーション、修復やキャンセルなどのエッジケースを詳細に把握できるため、Kubernetes 環境内で中断を直接モニタリングできます。

これらのイベントは、標準の Kubernetes ツールまたは Cloud Logging を使用して表示できます。

  1. 最近のメンテナンス イベントを表示するには、次の kubectl コマンドを使用します。

    kubectl get events -n kube-system --field-selector involvedObject.kind=Node
    

    Kubernetes イベントはクラスタに 60 分間保持されるため、このコマンドはノードごとに最近のイベントのみを出力します。

  2. Cloud Logging でイベントを表示する手順は次のとおりです。

    1. コンソールの [ログ エクスプローラ] ページに移動します。 Cloud de Confiance

      [ログ エクスプローラ] に移動

    2. 次のクエリを使用してください。

    resource.type="k8s_node"
    log_id("events")
    jsonPayload.metadata.annotations."maintenance.gke.io/category"="HostMaintenance"
    

メンテナンス ライフサイクル イベント

メンテナンス ライフサイクル イベントは、Kubernetes ノードリソースで出力されます。次の表に、Compute Engine ホスト メンテナンス ライフサイクル中に GKE によって出力されるイベントを示します。

理由 説明
MaintenanceWindowScheduled ノードの Compute Engine ホスト メンテナンスの時間枠がスケジュールされました
MaintenanceWindowCancelled ノードで Compute Engine ホスト メンテナンスの時間枠がクリアされました
MaintenanceWindowRescheduled 以前にスケジュールされた Compute Engine ホスト メンテナンスの時間枠が移動され、メンテナンスの開始時刻が更新されました
CustomerTriggeredMaintenance GKE を介して Compute Engine ホスト メンテナンスが手動でトリガーされました
MaintenanceWindowStarted Compute Engine ホスト メンテナンスが開始されました
TerminateOnHostMaintenance Compute Engine が終了シグナル(TERMINATE_ON_HOST_MAINTENANCE)を発行したときに出力されます。正常終了が有効になっている場合、GKE はノードを隔離し、Pod の削除(SIGTERM)をスケジュールします。ワークロードには、マシン階層に応じて 5 ~ 60 分の通知上限が設定されます。
PodEvictionComplete すべての Pod がノードから正常に削除されました
MaintenanceWindowCleared Compute Engine ホスト メンテナンスが完了し、ノードが準備完了状態に戻りました。

イベント ペイロード情報

今後のメンテナンス イベントに関する情報が Compute Engine から入手できる場合、各イベントには、次の情報を含むアノテーション データを含むペイロードも含まれます。

  • Compute Engine ウィンドウの詳細: windowStartTimewindowEndTimelatestWindowStartTime が含まれます。
  • メンテナンス メタデータ: イベント発生時の メンテナンス サイクルのステータス、メンテナンスの理由(理由は SCHEDULED または UNSCHEDULED として表示されます)、Compute Engine ウィンドウを再スケジュールできるかどうか。
  • Kubernetes メタデータ: Cluster_name、nodepool_name、node_name が含まれます。

GKE メンテナンス ダッシュボードでのホスト メンテナンス オペレーションの表示

GKE メンテナンス ダッシュボード には、 ホスト メンテナンス オペレーションの統合ビューが表示されます。このダッシュボードでは、クラスタ、ノードプール、ノードレベルでのメンテナンス アクティビティを包括的に把握できます。

このダッシュボードは Observability Analytics を基盤として構築されています。メンテナンス サイクル、ノードのステータス、過去のダウンタイム指標が表示されます。

次のステップ