このドキュメントでは、仮想マシン(VM)の復元性と、Google Distributed Cloud(GDC)エアギャップ内の VM からより詳細な分析情報を取得するためにアプリケーション オペレーターが有効にできるオプションのチェックの概要について説明します。
このドキュメントは、VM を運用するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、GDC エアギャップの対象ユーザーに関するドキュメントをご覧ください。
GDC の VM は、基盤となるインフラストラクチャまたはゲストの障害が発生した場合にサービスの継続性を高める HA を提供します。VM のステータスに関する詳細な分析情報を提供するオプションの健全性シグナルを発行するようにシステムを構成することもできます。
VM の可用性チェック
システムは、次の VM 可用性チェックを提供します。
| チェック名 | 説明 | 軽減アクションのサポート | シグナルの可用性 |
|---|---|---|---|
| ゲストの健康状態の確認 | ゲスト OS の健全性を検証します。他のゲスト内チェックの前提条件。 | ○ | In-Guest Check |
| ストレージ チェック | VM の基盤となるストレージの健全性を検証します。 | ○ | In-Guest Check |
| 下り(外向き)チェック | 既知の内部エンドポイントへの接続を確認します。 | いいえ | In-Guest Check と Outside |
| 上り(内向き)のチェック | 構成された上り(内向き)を使用して VM のアクセシビリティを確認します(VirtualMachineExternalAccess)。 | いいえ | In-Guest Check |
軽減アクションでは、頻繁に障害が発生した場合に VM を再起動して別のノードに再スケジュールできます。
権限とアクセス権をリクエストする
このページに記載されているタスクを行うには、プロジェクトの VirtualMachine 管理者ロールが必要です。VM が存在するプロジェクトの名前空間にプロジェクト VirtualMachine 管理者(project-vm-admin)ロールがあることを確認する手順に沿って操作します。
ゲスト内チェックを有効にする
デフォルトでは、guestHealthCheck が存在しない場合、ゲスト内チェックは無効になっています。
VM のゲスト内チェックを有効または無効にするには、VM の仕様で GuestEnvironment を更新する必要があります。この設定では、ゲスト エージェントがインストールされている場合、VM 内の指標が収集されます。guestHealthCheck が存在しない場合、ゲスト内チェックはデフォルトで無効になります。
- VM の構成ファイルを開きます。
spec:セクションに移動します。guestEnvironment:フィールドとguestHealthCheck:フィールドを追加または変更して、チェックを有効にします。enableフィールドを true に設定します。
YAML ファイルの構成の例を次に示します。
spec:
compute:
virtualMachineType: n2-standard-2-gdc
guestEnvironment:
guestHealthCheck:
enable: true
チェックを確認する
VM を構成したら、仮想マシンの Status で Condition を調べて、可用性チェックのステータスを確認できます。
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n NAMESPACE_NAME \
get gvm -o yaml
出力には、さまざまなチェックのステータスが表示されます。たとえば、guestHealthCheck が有効になっている場合、gvm ステータス条件には VMGuestHealth シグナルが入力されます。
VM の高可用性を無効にする
アノテーションがない場合、デフォルトで VM の高可用性が有効になります。アノテーションを追加することで、特定の VM の HA を明示的に無効にできます。VM HA を無効にするアノテーションを追加します。
- VM の構成ファイルを開きます。
- VM のメタデータに
highavailability.virtualmachine.gdc.goog/enable: falseアノテーションを追加して、高可用性を無効にします。
YAML ファイルのアノテーションの例を次に示します。
metadata:
annotations:
highavailability.virtualmachine.gdc.goog/enable: false
ノード障害の軽減
自動緩和アクションは、VM の障害に対処し、HA を維持します。基盤となるインフラストラクチャが実行中の VM をサポートできなくなると、システムは異常なノードをフェンスし、VM を正常なノードに再スケジュールしようとします。次のシナリオでは、このノードレベルの緩和策がトリガーされる可能性があります。
API サーバーからのノード パーティション: VM をホストするベアメタル ノードが、次のような条件により Management API サーバーからパーティション分割されます。
- API サーバーとノード間のネットワーク接続の切断。
- ノードの
kubeletエージェントがダウンしています。 - ノードで電源障害が発生します。
ユーザー クラスタ VM パーティション: ユーザー クラスタ ワーカー VM は、クラスタの Management API サーバーからパーティション分割されます。