このページでは、アプリケーションに対する仮想マシン(VM)インスタンスのホスト メンテナンス ポリシーの影響をテストする方法について説明します。
次のような状況で VM でメンテナンス イベントをシミュレートできます。
- メンテナンス イベント中にライブ マイグレーションするように構成された VM があり、アプリケーションに対するライブ マイグレーションの影響をテストする必要がある。
- プリエンプティブル VM インスタンスで実行されるバッチジョブがあり、インスタンスのプリエンプションおよびシャットダウンがアプリケーションによってどのように処理されるかをテストする必要がある。
- メンテナンス イベント中にライブ マイグレーションするのではなく、停止して再起動するようにインスタンスが構成されていて、このシャットダウンと再起動のプロセスがアプリケーションによってどのように処理されるかをテストする必要がある。
- ホスト メンテナンス イベント中に、単一テナントノードで実行中のワークロードの動作をテストして、単一テナント VM のホスト メンテナンス ポリシーが VM で実行中のアプリケーションに対して与える影響を確認する必要がある。
始める前に
simulate_maintenance_event_requests
指標の API レート制限を確認します。-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
ライブ マイグレーションをサポートしていない VM でホスト メンテナンス イベントをシミュレートしようとすると、構成済みのホスト メンテナンス ポリシーに応じて、終了または再起動されます。
ホスト メンテナンス ポリシーがノードグループ内で移行に設定されているノードグループで、ホスト メンテナンス イベントをシミュレートしようとする際に、指定したノード数が予約されているホールドバック ノードの合計数以下である場合、指定されたすべてのノードに対して同時にホスト メンテナンス イベントのシミュレーションが実行されます。指定されたノード数が予約されているホールドバック ノードの合計数より大きい場合、シミュレーションは失敗します。
ホスト メンテナンス ポリシーがノードグループ内で移行に設定されているノードグループで、メンテナンス イベントを正しくシミュレートするには、各ノードでメンテナンス イベントを順次トリガーする必要があります。
- シミュレーションの開始時、
maintenance-event
メタデータキーの値がNONE
からMIGRATE_ON_HOST_MAINTENANCE
に変わります。 - シミュレーション イベントの間は
MIGRATE_ON_HOST_MAINTENANCE
のままです。 - シミュレーションが終了すると値は
NONE
に戻ります。 VM_NAME
: メンテナンス イベントをシミュレートする VM の名前。同じゾーン内の複数の VM でメンテナンス イベントをシミュレートするには、VM 名を 1 個のスペースで区切って指定します。例:
instance-1 instance-2 instance-3
ZONE
: インスタンスが配置されているゾーン。PROJECT_ID
: このリクエストのプロジェクト ID。VM_NAME
: メンテナンス イベントをシミュレートするインスタンスの名前。同じゾーン内の複数のインスタンスでメンテナンス イベントをシミュレートするには、インスタンス名を 1 個のスペースで区切って指定します。例:
instance-1 instance-2 instance-3
ZONE
: インスタンスが配置されているゾーン。NODE_GROUP
: メンテナンス イベントをシミュレートするノードグループの名前。NODE_NAMES
: メンテナンス イベントをシミュレートするノードの名前。複数のノード名を指定する場合は、カンマ区切り値を使用します(例:node-1,node-2,node-3
)。ZONE
: ノードが配置されているゾーン。PROJECT_ID
: このリクエストのプロジェクト ID。ZONE
: ノードが配置されているゾーン。NODE_GROUP
: メンテナンス イベントをシミュレートするノードグループの名前。NODE_NAMES
: メンテナンス イベントをシミュレートするノードの名前。ノード名を二重引用符で囲みます(例:"node-1"
)。複数のノード名を指定する場合は、カンマ区切り値を使用します(例:"node-1","node-2","node-3"
)。- ホストイベントの詳細を確認する。
- 単一テナントノードでのホスト メンテナンスの詳細を確認する。
- VM ホスト メンテナンス ポリシーの設定の詳細を確認する。
- VM オペレーションを表示する方法を学習する。
- VM テナンシーの詳細を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
ホスト メンテナンス イベントをシミュレートする
Google Cloud CLI と API リクエストのいずれかを使用して、VM でメンテナンス イベントをシミュレートできます。
ホスト メンテナンス イベントのシミュレーション中、VM の
maintenance-event
メタデータキーに次の変更が行われます。メンテナンス イベントキーをクエリするには、メンテナンス イベントのメタデータキーをクエリするをご覧ください。
gcloud
instances simulate-maintenance-event
コマンドを実行して、インスタンスでその構成済みメンテナンス ポリシー処理を有効にします。gcloud compute instances simulate-maintenance-event VM_NAME \ --zone ZONE
次のように置き換えます。
REST
Compute Engine API で、次の
compute.instances.simulateMaintenanceEvent
メソッドにリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/simulateMaintenanceEvent
次のように置き換えます。
単一テナントノードでホスト メンテナンス イベントをシミュレートする
Google Cloud CLI または API リクエストを使用して、単一テナントノードでホスト メンテナンス イベントをシミュレートできます。単一テナント VM のホスト メンテナンス イベントのシミュレーション中、
maintenance-event
メタデータキーの値は変更されず、シミュレーション中もNONE
のままです。gcloud
sole-tenancy node-groups simulate-maintenance-event
コマンドを実行して、単一テナントノードで構成済みのメンテナンス ポリシーを強制的に有効にします。gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \ --nodes=NODE_NAMES \ --zone=ZONE \ --async
次のように置き換えます。
REST
Compute Engine API で、次の
compute.nodeGroups.simulateMaintenanceEvent
メソッドにリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent { "nodes": [NODE_NAMES] }
次のように置き換えます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-19 UTC。
-