このページでは、A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(8 GPU)マシンの AI 最適化 Google Kubernetes Engine(GKE)クラスタを管理する方法について説明します。これには、GKE クラスタと AI ワークロードに関連する次の一般的なイベントが含まれます。
- ホスト メンテナンス
- クラスタのアップグレード
- 障害のあるホストの報告
AI ワークロードのホスト メンテナンスを管理する
GKE ノードは Compute Engine インスタンスで実行されます。このインスタンスでは、AI ワークロードに影響を与える可能性のあるホストイベントが定期的に 発生します。ホストイベントは基盤となる Google Cloud インフラストラクチャで発生するため、GKE のメンテナンスの時間枠と除外をバイパスします。 ほとんどのコンピューティング インスタンスでは、ホスト メンテナンス ポリシーがライブ マイグレーションに設定されているため、ワークロードの中断は最小限に抑えられますが、GPU と TPU は ライブ マイグレーションをサポートしていません。 これらのホストイベントが AI ワークロードを実行している GKE ノードに影響する場合、GKE はノードとノードで実行されている Pod を終了する必要があります。Pod が Job や Deploymentなどのより大きなワークロードの一部としてデプロイされている場合、 GKE は、影響を受けるノードの Pod を再起動しようとします。
基盤となるコンピューティング インスタンスのホスト メンテナンスの管理の詳細については、 GPU と TPU の GKE ノードの停止を管理するをご覧ください。
ホスト メンテナンス イベントをモニタリングする
GKE バージョン 1.31.1-gke.2008000 以降を実行しているクラスタでは、ホスト メンテナンス イベントのスケジュールされた開始時間を次の方法で確認できます。開始時間は、すべての GPU と TPU の対応する GKE ノードの Kubernetes ノードラベルで表されます。
詳細については、メンテナンス通知をモニタリングする をご覧ください。
これらのノードラベルを使用すると、次のことができます。
ホスト メンテナンス イベントを手動で開始する
Compute Engine からスケジュールされたメンテナンス イベントに関する通知が発行されたら、スケジュールに合わせてメンテナンスを手動で開始できます。たとえば、アクティビティが低下している期間にメンテナンスを実施できます。
ホスト メンテナンス イベントを手動で開始しない場合、スケジュールされたメンテナンスが定期的に Compute Engine によって自動的に実施されます。
ホスト メンテナンス イベントを手動で開始するの手順に沿って操作します。また、このセクションを読み進めて、次のことを確認してください。
ワークロードのスケジュール時にホスト メンテナンス情報を使用する
GKE ノード ラベルを通じて公開されるメンテナンス情報を、ノード アフィニティと アンチアフィニティ とともに使用して、ワークロードの中断を最小限に抑えることができます。
この情報の使用方法の例については、次のセクションをご覧ください。
今後のメンテナンス イベントがスケジュールされていないノードに Pod をスケジュールする
今後のメンテナンス イベントがスケジュールされていないノードにのみ Pod をスケジュールするように GKE に指示できます。たとえば、次のスニペットを使用します。
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cloud.google.com/scheduled-maintenance-time
operator: DoesNotExist
特定の日付以降にメンテナンスがスケジュールされているノードに Pod をスケジュールする
Unix エポック時間を指定することで、特定の日付以降にメンテナンスがスケジュールされているノードにのみ Pod をスケジュールするように GKE に指示できます。
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cloud.google.com/scheduled-maintenance-time
operator: Gt
values:
- 1733296000
AI ワークロードの GKE クラスタのアップグレードを管理する
AI ワークロードは中断の影響を受けやすいものです。
GKE クラスタのライフサイクル中、AI ワークロードは、基盤となるコンピューティング インスタンスと GKE クラスタ自体の中断に備える必要があります。
- ホスト メンテナンス: 基盤となるコンピューティング インスタンスのホスト メンテナンスを管理するには、GPU と TPU の GKE ノードの停止を管理するをご覧ください。これについては、前のセクションでも説明しています。
- クラスタのアップグレード: クラスタのアップグレードによる中断を管理するには、次の
ツールを使用します:
- メンテナンスの時間枠: GKE がクラスタのアップグレードや その他の種類のクラスタ オペレーションを実行できるタイミングをスケジュールします。
- メンテナンスの除外: 特定の期間にクラスタのアップグレードやその他の種類のクラスタ オペレーションが行われないようにします。
クラスタをリリース チャンネルに登録しておくことをおすすめします。 デフォルトでは、GKE クラスタは Regular リリース チャンネルに登録されます。リリース チャンネルのメリットの詳細については、 リリース チャンネルに登録されているクラスタと登録されていないクラスタの比較 をご覧ください。
リリース チャンネルを使用すると、メンテナンス除外スコープの追加など、より多くの機能にアクセスできます。 メンテナンス除外 スコープ。 AI ワークロードには「マイナー アップグレードまたはノード アップグレードなし」スコープをおすすめします。
GKE を使用して障害のあるホストを報告する
このセクションでは、GKE を使用して、予約バインド プロビジョニング モデルを使用してプロビジョニングされたコンピューティング インスタンスを持つ障害のある ホストを報告する方法について説明します。 flex-start プロビジョニング モデル (プレビュー) を使用してプロビジョニングされたノードの障害のあるホストを報告する場合は、 アカウント チームにお問い合わせください。
ノードで GPU メモリまたは Xid エラーが発生し、ホストに障害があると報告する前に、
ゲスト OS の再起動(kubectl label
nodes <NODE_NAME> cloud.google.com/perform-reboot=true)をトリガーするなどの手動復旧措置で問題を解決できるかどうかを確認する場合は、Xid
メッセージを確認するをご覧ください。
ホストは、データセンター内の単一の物理サーバー
マシンで、GKE ノードをホストするコンピューティングインスタンスを実行します。障害のあるホストを報告するには、影響を受ける GKE ノードに fault-behavior
ノードラベルを適用します。特定の GKE ノードにノードラベルを適用すると、GKE は次の手順を行います。
- ノードからワークロードを正常に強制排除します。
- そのノードで新しい Pod が起動されなくなります。
- コンピューティング インスタンスで API を呼び出して、ホストに障害があることをマークします。
- コンピューティング インスタンスが正常なホストマシンで再起動されるまで待ちます。予約オペレーション モードとして予約の すべての容量を使用する場合、 修復オペレーションが完了すると、Compute Engine は同じノードでコンピューティング インスタンスを再起動します。
- ノードから taint と
fault-behaviorラベルを削除します。
その後、ノードはワークロードを再び処理できるようになります。
要件
障害のあるホストを報告するには、GKE ノードが次の要件を満たしている必要があります。
- GKE パッチ バージョン 1.32.3-gke.1057001 以降を実行している必要があります。
- A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(8 GPU)のいずれかの GPU マシンタイプを実行している必要があります。
- 予約バインドされているコンピューティング インスタンスで GKE ノードを実行している必要があります。
- GKE ノードが
RUNNING状態である必要があります。コンピューティング インスタンスを削除した後に障害のあるホストを報告しようとすると、エラー メッセージが返され、ホストマシンに障害があることをマークできません。 - ブロックの健全性の評価に基づいて、予約あたりのこの API の呼び出し回数にレート制限が適用される場合があります。予約で予約オペレーション モードとしてすべての容量を使用する場合、レート制限は 適用されません。
ホストの不具合を報告する
障害のあるホストを報告する手順は次のとおりです。
GKE のオブザーバビリティ ツール、独自のモニタリング ツール、またはログを使用して、パフォーマンスの問題が発生している GKE ノードを特定します。
NODE_NAMEを保存します。次のコマンドを使用して、ノードに障害があると報告します。理由を指定できます。新しいバージョンでは、説明を指定できます。
kubectl patch node NODE_NAME --type merge -p '{ "metadata": { "labels": { "cloud.google.com/fault-behavior": "FAULT_REASON" }, "annotations": { "cloud.google.com/fault-description": "FAULT_DESCRIPTION" } } }'コマンドを次のように変更します。
NODE_NAMEを障害のある ノードの名前に置き換えます。FAULT_REASONを適切な障害 理由に置き換えます。次のいずれか 1 つ以上の値を使用します。PERFORMANCE: コンピューティング インスタンスの GPU のパフォーマンスがクラスタ内の他の GPU よりも遅く、ログに XID エラーが表示されず、サイレント データ破損などの他の一般的な障害パターンが検出されない場合は、この値を使用します。SDC: データ破損が発生しているが、システム クラッシュが発生していない場合は、サイレント データ破損にこの値を使用します。このデータ破損は、CPU の不良、use-after-free やメモリの破損などのソフトウェア バグ、カーネルの問題、その他の不良が原因で発生することがあります。通常、この用語 はハードウェアに起因する不良を指します。XID: コンピューティング インスタンスで XID を使用して修復不可能な GPU エラー を特定した場合は、この値を使用します。unspecified: コンピューティング インスタンスの問題の原因となっている動作が不明な場合は、この値を使用します。これがデフォルト 値です。ただし、該当する場合は、他のいずれかの値を指定することをおすすめします。
-
GKE クラスタのコントロール プレーンのバージョンに基づいて
- 1.35.6-gke.1017000 以降、または 1.36.0-gke.3251000 以降:
annotations ブロックを保持し、
FAULT_DESCRIPTIONを観測された障害のテキスト説明に置き換えます。これには、XID エラーコード、 症状、タイムスタンプを含めることができます。この説明は、修復診断を支援するために Compute Engine に転送され、オペレーションが完了するとノードから自動的に削除されます。 例:GPU XID 48 observed on device nvidia0 at 2026-06-10T10:30:00Z。 - 以前のバージョン: コマンドから
annotationsブロック全体を削除します。これらのバージョンでは、fault-descriptionフィールドは Compute Engine に転送されず、ノードから自動的に削除されません。代わりに、アカウント チームまたは Cloud カスタマーケアに連絡して、障害の詳細をお知らせください。
annotationsブロックを調整します。- 1.35.6-gke.1017000 以降、または 1.36.0-gke.3251000 以降:
annotations ブロックを保持し、
reservationOperationalModeフィールドを表示します。
次の表に、使用可能な 2 つの予約オペレーション
モード(すべての容量モードとマネージド モード)の障害のあるホストのプロセスをまとめます。
すべての容量モード(ALL_CAPACITY) |
マネージド モード(HIGHLY_AVAILABLE_CAPACITY) |
|
|---|---|---|
| サポートされているマシンタイプ | A4X Max と A4X | A4、A3 Ultra、A3 Mega、A3 High |
| Faulty host report API のレート制限 | レート制限は適用されません。 | API の呼び出しにはレート制限が適用される場合があります。 |
| 障害のあるホストの報告プロセス |
すべての容量モードで実行されているノードの障害のあるホストを報告すると、次のようになります:
|
マネージド モードで実行されているノードの障害のあるホストを報告すると、 次のようになります。
|
オペレーションの進行状況をモニタリングする
GKE のオペレーションの進行状況は、GKE ノードの cloud.google.com/report-and-replace-status
ノードラベルを使用してモニタリングできます。このラベルには次のいずれかの値が設定されます。
PodsEvicted: GKE は、影響を受けるノードからの Pod の強制排除を完了しました。OperationRUNNING: 障害のあるホストを報告するオペレーションが実行されています。OperationDONE: 基盤となるホストに障害があると報告され、GKE ノードを新しいホストに移動する準備ができました。OperationFAILED: 割り当て上限やその他のインフラストラクチャの問題により、コンピューティング インスタンスの API が失敗しました。エラーの詳細については、 障害のあるホストの報告 API エラーのトラブルシューティングをご覧ください。 復旧方法については、 報告と置換の失敗を処理するをご覧ください。Error:リクエストが前の セクションで説明した 要件のいずれかを満たしていないため、API 呼び出しが失敗しました。
node.gke.io/report-and-replace-operation ノードラベルを表示して、Compute Engine オペレーション ID を表示し、オペレーションのステータスをモニタリングすることもできます。
次のコマンドを使用して、これらのノードラベルの両方を表示できます。
kubectl get nodes NODE_NAME \
-L cloud.google.com/report-and-replace-status,node.gke.io/report-and-replace-operation
API エラーが発生すると、GKE は cloud.google.com/report-and-replace-status
ノードラベルを Error に設定します。オペレーションが失敗すると、GKE はラベルを
OperationFAILED に設定します。
どちらの場合も、GKE は cloud.google.com/fault-behavior
ノードラベルを削除します。また、GKE バージョン 1.35.6-gke.1256000 以降、または
1.36.0-gke.4060000 以降では、GKE はノードに
cloud.google.com/report-and-replace-failed:NoSchedule taint を適用します。この
taint により、新しい Pod がノードでスケジュールされなくなり、ワークロードがホストに障害がある可能性のあるノードに配置されないようにします。詳細については、
報告と置換の失敗を処理するをご覧ください。
障害のあるホストの報告オペレーションの詳細なステータスを追跡する方法については、障害のあるホストの報告オペレーションを確認するをご覧ください。
報告と置換の失敗を処理する
報告と置換のオペレーションが失敗すると、GKE は影響を受けるノードに
cloud.google.com/report-and-replace-failed:NoSchedule taint
を適用します。この taint により、基盤となるホストに障害がある可能性がある間、新しいワークロードがノードにスケジュールされないように、ノードが隔離されます。
失敗の taint を確認する
ノードに報告と置換の失敗の taint があるかどうかを確認するには、次のコマンドを実行します。
kubectl describe node NODE_NAME | grep "report-and-replace-failed"
報告と置換の失敗から復旧する
報告と置換の失敗から復旧するには、次のいずれかを行います。
ノードに
cloud.google.com/fault-behaviorラベルを再適用して、オペレーションを再試行 します。再試行が成功すると、GKE はcloud.google.com/report-and-replace-failed:NoScheduletaint を自動的に削除します。kubectl label node NODE_NAME cloud.google.com/fault-behavior=FAULT_REASONノードが正常であると判断した場合、またはノードをサービスに戻す場合は、taint を手動で削除 します。
kubectl taint nodes NODE_NAME cloud.google.com/report-and-replace-failed:NoSchedule-
次のステップ
トポロジ対応スケジューリングで GKE ワークロードを スケジュールする方法を確認する。
NCCL/gIB を使用してクラスタ ネットワーキングを 最適化する方法を確認する。
障害のあるホストの報告 API エラーのトラブルシューティング方法を 確認する。