VM を手動でライブ マイグレーションする


単一テナント VM を別のノードまたはノードグループに移動するには、ライブ マイグレーションを手動で開始します。ライブ マイグレーションを手動で開始して、マルチテナント VM を単一テナンシーに移動させることもできます。VM を単一テナンシーから移動する方法については、単一テナンシーから VM を移動するをご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

API レート制限

手動ライブ マイグレーション リクエストは、クエリAPI レート制限に分類されます。

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションする

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、gcloud CLI または REST を使用します。

VM の宛先がノードグループの場合、Compute Engine は VM に必要な空き容量があり、予備容量が最も少ないノードを選択します。

共有の単一テナントノード グループを使用している間は、プロジェクト間のライブ マイグレーションを実行できません。

このタスクに必要な権限

このタスクを行うには、次の権限が必要です。

  • VM に対する compute.instances.update 権限。

gcloud

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、次の gcloud compute instances update コマンドを使用します。

gcloud compute instances update VM_NAME \
    ( --node=NODE \
      --node-group=NODE_GROUP \
      --node-affinity-file=NODE_AFFINITY_FILE )

次のように置き換えます。

  • VM_NAME: ノード アフィニティ ラベルを更新する VM の名前。

次のいずれかを置き換えます。

  • NODE: VM をライブ マイグレーションするノードの名前。

  • NODE_GROUP: VM をライブ マイグレーションするノードグループの名前。

  • NODE_AFFINITY_FILE: この VM をスケジュールできるノード構成を含む JSON ファイルの名前。詳細については、ノード アフィニティ ラベルの構成をご覧ください。

REST

単一テナンシー内へ、または単一テナンシー内で VM を手動でライブ マイグレーションするには、次の instances.update メソッドを使用します。

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

{
  ...
  "scheduling": {
    "nodeAffinities": [
      {
        "key": "NODE_AFFINITY_LABEL_KEY",
        "operator": "IN",
        "values": [
          "[NODE_AFFINITY_LABEL_VALUE]"
        ]
      }
    ]
  }
  ...
}

次のように置き換えます。

  • PROJECT_ID: ノード アフィニティ ラベルを更新する VM が属するプロジェクトの ID。

  • ZONE: ノード アフィニティ ラベルを更新する VM のゾーン。

  • VM_NAME: ノード アフィニティ ラベルを更新する VM の名前。

  • NODE_AFFINITY_LABEL_KEY: VM のライブ マイグレーションの宛先(ノードグループかノード)を指定する文字列。次のいずれかになります。

    VM の宛先 指定するキー
    ノードグループ compute.googleapis.com/node-group-name
    ノード compute.googleapis.com/node-name
  • NODE_AFFINITY_LABEL_VALUE: VM をライブ マイグレーションするノードグループまたはノードの名前。

次のステップ