MIG でのステートフル構成の適用、表示、削除


ステートフル マネージド インスタンス グループ(MIG)ステートフル構成を作成または更新すると、次のことが可能になります。

  • ステートフル構成を適用して有効にする。
  • ステートフル構成とマネージド インスタンスの有効な保持状態を表示する。
  • ステートフル構成を削除する。

準備

  • ステートフル MIG を使用する場合ステートフル MIG の仕組みを確認します。
  • まだ設定していない場合は、認証を設定します。認証とは、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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

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

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

マネージド インスタンスへのステートフル構成の適用

ステートフル構成は、ユーザーまたは MIG が適用した後に有効になります。

  • ステートフル ポリシーの構成変更は、すべてのマネージド インスタンスに自動的に適用されます。
  • インスタンスごとの構成の変更は、手動でも自動的にも適用できます。

コンセプトの詳細については、マネージド インスタンスにステートフル構成を適用する方法をご覧ください。

ステートフル ポリシーからの構成の適用

ステートフル ポリシーのすべての構成変更は、すべてのマネージド インスタンスに自動的に適用されます。ステートフル ポリシーを更新しても、実行中の仮想マシン(VM)インスタンスは中断されません。

ステートフル ポリシーが適用されているかどうかの確認

すべての VM を確認する

ステートフル ポリシーへの変更がすべての VM に適用されたかどうかを確認するには、変更後に MIG が安定したかどうかを確認します。

特定の VM を確認する

ステートフル ポリシーへの変更が MIG の特定の VM に適用されたかどうかを確認するには、マネージド インスタンスの保持状態を表示し、ステートフル ポリシーのすべてのディスクが、マネージド インスタンスに対する preservedStateFromPolicypreservedStateFromConfig のいずれかで表示されることを確認します。

インスタンスごとの構成からのステートフル構成の適用

新規または更新されたインスタンスごとの構成を手動または自動で適用できます。次のいずれかの方法を使用します。

  • 更新された構成を選択的に特定のインスタンスに適用する: この方法を使用して、更新の中断、タイミング、順序を制御します。
  • ローリング アップデートで更新された構成を自動的に適用する: この方法を使用して、マネージド インスタンスに構成の変更を自動的に適用します。

どちらの方法も、インスタンスごとの構成と適用されていないバージョンの両方から未処理の更新を適用します。または、該当する場合にはインスタンス テンプレートを適用します。

更新された構成を選択的に特定のインスタンスに適用する

インスタンスごとの構成を特定のインスタンスに手動で適用するには、次の手順を行います。

  1. 日和見更新ポリシーを構成して、自動で行われる先行型更新で競合を防止します。
  2. インスタンスごとの構成を作成または更新します。
  3. 特定の VM を選択的に更新することにより、更新された構成を特定の VM に適用します。

または、次の方法も使用できます。

  • --update-instance gcloud CLI を使用してインスタンスごとの構成を作成または更新する場合は、フラグを使用して、構成を関連付けられたマネージド インスタンスにすぐに適用します。
  • 新しいインスタンスを手動で作成する場合は、作成時にインスタンスの名前と構成を指定します。MIG は VM の作成時に構成をすぐに適用します。

ローリング アップデートで更新された構成を自動的に適用する

プロアクティブなローリング アップデートを構成して、MIG を対応するマネージド インスタンスにローリング方式で自動的に適用します。

ステートフル MIG の場合、プロアクティブな更新ポリシーに次の構成が必要です。

この構成により、MIG は既存のステートフル インスタンスを再作成します。別のインスタンスに置き換えません。

また、グループの更新ポリシーで最小アクションREFRESH に設定することで、インスタンスを停止せずにインスタンスごとの構成の変更が適用されるようにすることもできます。

インスタンスごとの構成が適用済みかどうかを確認

インスタンスごとのすべての構成を確認

MIG でインスタンスごとの構成がすべて適用済みかどうかを確認するには、MIG のステートフル ステータスを表示して、status.stateful.perInstanceConfigs.allEffective を確認します。

  • true: グループ内のインスタンスごとの構成がすべて適用されて有効になっているか、グループにインスタンスごとの構成がありません。
  • false: 有効になっていないインスタンスごとの構成がグループに 1 つ以上あります。まだ適用していないか、適用処理の実行中です。

特定のインスタンスごとの構成を確認

特定のインスタンスごとの構成に対する変更が対応する VM に適用されたかどうかを確認するには、インスタンスごとの構成をすべて表示し、そのインスタンスごとの構成の status フィールドを確認します。

  • UNAPPLIED: インスタンスごとの構成は作成または更新されたため、手動でインスタンスを更新し、VM に適用する必要があります。
  • APPLYING: MIG は現在、その新しい、または更新されたインスタンスごとの構成を VM に適用する処理を行っています。
  • EFFECTIVE: インスタンスごとの構成は VM に正常に適用され、有効になっています。
  • UNAPPLIED_DELETION: インスタンスごとの構成は削除するように設定されています。更新を適用するには、インスタンスの更新を手動で行い、その更新を VM に適用する必要があります。
  • DELETING: インスタンスごとの構成は削除中で、変更を VM に適用する処理が行われています。

ステートフル構成と保持状態の表示

次のタスクのステートフル MIG に関する情報を取得します。

  • MIG にステートフル構成があるかどうか、この構成が適用されていて有効かどうかを確認する。
  • ステートフル ポリシーに保存されている MIG 内のすべてのインスタンスに共通のステートフル構成を表示する。
  • インスタンスごとの構成に保存されている、個々のインスタンスに固有のステートフル構成を表示し、この構成が適用されていて有効かどうかを確認する。
  • ステートフル ポリシーと適用されているインスタンスごとの構成に基づいて、MIG 内の各インスタンスに対して有効な保持状態を表示する。

MIG のステートフル構成のステータスの表示

ステートフル構成がある場合(ステートフル ポリシー、または各インスタンスに空でない構成が 1 つ以上ある場合)、MIG はステートフルとみなされます。

ステートフル ポリシーを作成すると、MIG によってポリシーが自動的に適用され、有効になります。インスタンスごとの構成を作成する場合、構成を後で適用するように設定することもできます。

MIG にステートフル構成があり、インスタンスごとの構成がすべて適用されていることを確認するには、gcloud CLI または REST を使用して MIG のステートフル ステータスを表示します。

gcloud

MIG にステートフル構成があるかどうかを確認するには、gcloud compute instance-groups managed describe コマンドを実行してステートフル ステータスを表示します。例:

gcloud compute instance-groups managed describe NAME

baseInstanceName node
...
name example-group
...
status:
  isStable: true
  stateful:
    hasStatefulConfig: true
    perInstanceConfigs:
      allEffective: true
  versionTarget:
    isReached: true
targetSize: 3
...

この出力で:

  • hasStatefulConfig:
    • true: グループにステートフル構成があります。つまり、グループに空でないステートフル ポリシーがあるか、各インスタンスに空でない構成が少なくとも 1 つ以上存在します。
    • false: ステートフル構成は存在しません。
  • perInstanceConfigs.allEffective:
    • true: グループ内のインスタンスごとの構成がすべて適用されて有効になっているか、グループにインスタンスごとの構成がありません。
    • false: 有効になっていないインスタンスごとの構成がグループに 1 つ以上あります。まだ適用していないか、適用処理の実行中です。

REST

MIG にステートフル構成があるかどうかを確認するには、instanceGroupManagers.get または regionInstanceGroupManagers.get メソッドを使用して status.stateful フィールドを確認します。例:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME

このメソッドは instanceGroupManagers オブジェクトを返します。

{
  "name": "example-group",
  "baseInstanceName": "node",
  ...
  "status": {
    "isStable": true,
    "stateful": {
      "hasStatefulConfig": true,
      "perInstanceConfigs": {
        "allEffective": true
      }
    },
    "versionTarget": {
      "isReached": true
    }
  },
  "targetSize": 3,
  ...
}

この出力で:

  • hasStatefulConfig:
    • true: グループにステートフル構成があります。つまり、グループに空でないステートフル ポリシーがあるか、各インスタンスに空でない構成が少なくとも 1 つ以上存在します。
    • false: ステートフル構成は存在しません。
  • perInstanceConfigs.allEffective:
    • true: グループ内のインスタンスごとの構成がすべて適用されて有効になっているか、グループにインスタンスごとの構成がありません。
    • false: 有効になっていないインスタンスごとの構成がグループに 1 つ以上あります。まだ適用していないか、適用処理の実行中です。

MIG のステートフル ポリシーの表示

Google Cloud コンソール、gcloud CLI、または REST を使用してグループの詳細を確認し、MIG のステートフル ポリシーを表示します。

コンソール

  1. Google Cloud コンソールの [インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. ステートフル ポリシーを表示するインスタンス グループの名前をクリックします。

  3. [詳細] タブに移動します。

  4. [ステートフル リソース] に、ステートフル ポリシーのすべてのリソースが一覧表示されます。

gcloud

MIG のステートフル ポリシーを表示するには、gcloud compute instance-groups managed describe コマンドを実行します。例:

gcloud compute instance-groups managed describe NAME

baseInstanceName node
...
name example-group
...
statefulPolicy:
  preservedState:
    disks:
      data-disk:
        autoDelete: NEVER
      logs-disk:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
    internalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
    externalIPs:
      nic0:
        autoDelete: NEVER
status:
  isStable: true
  stateful:
    hasStatefulConfig: true
    perInstanceConfigs:
      allEffective: true
  versionTarget:
    isReached: true
targetSize: 3
...

REST

MIG のステートフル ポリシーを表示するには、instanceGroupManagers.get または regionInstanceGroupManagers.get メソッドを使用して、statefulPolicy フィールドを確認します。例:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME

このメソッドは instanceGroupManagers オブジェクトを返します。

{
  "name": "example-group",
  "baseInstanceName": "node",
  ...
  "status": {
      "isStable": true,
      "versionTarget": {
        "isReached": true
      },
      "stateful": {
        "hasStatefulConfig": true,
        "perInstanceConfigs": {
          "allEffective": true
        }
      }
  ...
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "data-disk": { "autoDelete": "NEVER" },
        "logs-disk": { "autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      },
      "internalIPs": {
         "nic0" : { "autoDelete": "ON_PERMANENT_INSTANCE_DELETION"}
      },
      "externalIPs": {
         "nic0" : { "autoDelete": "NEVER"}
      },
    }
  },
  "targetSize": 3,
  ...
}

MIG のインスタンスごとの構成の表示

MIG のインスタンスごとの構成を一覧表示して、インスタンスごとの構成を確認します。gcloud CLI または REST を使用します。

インスタンスごとの構成を手動で適用することを決めたときに、一部のインスタンスごとの構成が関連付けられたインスタンスにまだ適用されていない場合があります。その場合、インスタンスごとの構成がインスタンスの保持状態に反映されていない可能性があります。詳細については、インスタンスごとの構成の適用インスタンスごとの構成が適用されているかどうかを確認するをご覧ください。

gcloud

gcloud compute instance-groups managed instance-configs list コマンドを実行して、MIG 内のすべてのインスタンスごとの構成を一覧取得します。

gcloud compute instance-groups managed instance-configs list NAME

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

  • NAME: インスタンスごとの構成を一覧表示する MIG の名前

標準の --filter フラグを使用してリストをフィルタリングします。

たとえば、example-group 内のインスタンスごとのすべての構成を一覧表示するには、次のようにします。

gcloud compute instance-groups managed instance-configs list example-group
---
fingerprint: JxPvsKOywuY=
name: node-1
preservedState:
  disks:
    data-disk:
      autoDelete: NEVER
      mode: rw
      source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/disks/data-disk-1
  metadata:
    role: primary
  internalIPs:
    nic0:
      ipAddress:
        address: /projects/example-project/regions/us-east1/addresses/node-1-int-ip
      autoDelete: ON_PERMANENT_INSTANCE_DELETION
  externalIPs:
    nic0:
      ipAddress:
        literal: 130.211.181.55
      autoDelete: NEVER
status: EFFECTIVE
---
fingerprint: IbGmJBqqEkk=
name: node-2
preservedState:
...

REST

instanceGroupManagers.listPerInstanceConfigs または regionInstanceGroupManagers.listPerInstanceConfigs メソッドを呼び出して、MIG のインスタンスごとの構成を一覧取得します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/listPerInstanceConfigs

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

  • PROJECT_ID: リクエストのプロジェクト ID
  • ZONE: MIG が配置されているゾーン(ゾーン MIG に適用)
    • リージョン MIG の場合は、zones/ZONEregions/REGION に置き換え、MIG のリージョンを指定します
  • NAME: インスタンスごとの構成を一覧表示する MIG の名前

たとえば、example-group 内のインスタンスごとのすべての構成を一覧表示するには、次のようにします。

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-group/listPerInstanceConfigs

このメソッドは、グループ内のインスタンスごとの構成のリストを返します。

{
  "items": [
    {
      "fingerprint": "JxPvsKOywuY=",
      "name": "node-1",
      "preservedState" : {
        "disks": {
          "data-disk" : {
            "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/disks/data-disk-1",
            "mode": "READ_WRITE",
            "autoDelete": "NEVER"
          }
        },
        "metadata": {
          "role": "primary"
        },
        "internalIPs": {
         "nic0" : {
           "ipAddress" : {
             "address":  "/projects/example-project/regions/us-east1/addresses/node-1-int-ip"
           },
           "autoDelete": "ON_PERMANENT_INSTANCE_DELETION"
         }
        },
        "externalIPs": {
         "nic0": {
           "ipAddress" : {
             "literal": "54.2.3.4"
           },
           "autoDelete": "NEVER"
         }
        }
      },
      "status": "EFFECTIVE"
    },
    {
      "fingerprint": "IbGmJBqqEkk=",
      "name": "node-2",
      "preservedState" : {
        ...
      }
      ...
    },
    ...
  ]
}

マネージド インスタンスの保持状態の表示

ステートフル構成が適用されると、MIG はそれぞれのマネージド インスタンスの有効な保持状態を生成し、次の 2 つのフィールドに設定します。

  • preservedStateFromPolicy: ステートフル ポリシーに基づいて生成された保持状態が含まれます(インスタンスごとの構成によってオーバーライドされるステートフル構成を除く)。
  • preservedStateFromConfig: マネージド インスタンスにすでに適用されているインスタンスごとの構成に基づいて生成された保持状態が含まれます。

MIG 内の各マネージド インスタンスの有効な保持状態を確認するには、gcloud CLI または REST を使用してマネージド インスタンスを一覧取得します。

gcloud

マネージド インスタンスに保持状態があることを確認するには、gcloud compute instance-groups managed list-instances コマンドを使用して、PRESERVED_STATE 列の値を確認します。例:

gcloud compute instance-groups managed list-instances NAME

NAME    ZONE        STATUS   HEALTH_STATE  ACTION  PRESERVED_STATE  INSTANCE_TEMPLATE  ...
node-1  us-east1-c  RUNNING                NONE    POLICY,CONFIG    example-template
node-2  us-east1-c  RUNNING                NONE    POLICY,CONFIG    example-template

PRESERVED_STATE 列には次の値を使用できます。

  • POLICY: マネージド インスタンスに、ステートフル ポリシーに基づく保持状態が含まれています。
  • CONFIG: マネージド インスタンスに、インスタンスごとの構成に基づく保持状態が含まれています。
  • 値なし: マネージド インスタンスに保持状態が含まれず、ステートレスです。

特定のマネージド インスタンスの保持状態を表示するには、gcloud compute instance-groups managed describe-instance コマンドを実行します。

gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \
  --instance INSTANCE_NAME

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

  • INSTANCE_GROUP_NAME: MIG の名前。
  • INSTANCE_NAME: グループ内のマネージド インスタンスの名前。

たとえば、example-group 内の node-1 マネージド インスタンスの保持状態を表示するには、次のコマンドを実行します。

gcloud compute instance-groups managed describe-instance example-group \
  --instance node-1
instance: .../example-project/zones/us-east1-c/instances/node-1
instanceStatus: RUNNING
currentAction: NONE
id: 123456789012345678
version:
  instanceTemplate: .../example-project/global/instanceTemplates/example-template
preservedStateFromPolicy:
  disks:
    data-disk:
      autoDelete: NEVER
      mode: rw
      source: .../example-project/zones/us-east1-c/disks/data-disk-1
    internalIPs:
      nic0:
        ipAddress:
          literal: 10.0.0.1
          address: .../example-project/regions/us-east1/addresses/node-1-int-ip
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
preservedStateFromConfig:
  metadata:
    role: primary
    my-key: my-value
  externalIPs:
    nic0:
      ipAddress:
        literal: 130.211.181.55
        address: .../example-project/regions/us-east1/addresses/node-1-nat-ip
      autoDelete: NEVER

REST

instanceGroupManagers.listManagedInstances または regionInstanceGroupManagers.listManagedInstances メソッドを呼び出して、マネージド インスタンスを一覧表示し、各インスタンスの保持状態を表示します。

たとえば、すべてのマネージド インスタンスを一覧表示するには、次のコマンドを実行します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/listManagedInstances

このメソッドは、グループ内のマネージド インスタンスのリストを返します。このリストには、保持態に関する情報が含まれています。

{
  "managedInstances": [
    {
      "instance": ".../example-project/zones/us-east1-c/instances/node-1",
      "instanceStatus": "RUNNING",
      "currentAction": "NONE",
      "id": "123456789012345678",
      "version": {
         "instanceTemplate":".../example-project/global/instanceTemplates/example-template"
      },
      "preservedStateFromPolicy": {
        "disks": {
          "data-disk" : {
            "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/disks/data-disk-1",
            "mode": "rw",
            "autoDelete": "NEVER"
          },
        },
        "internalIPs": {
          "nic0" : {
            "ipAddress": {
              "literal": "10.0.0.1",
              "address":  "/projects/example-project/regions/us-east1/addresses/node-1-int-ip"
            },
            "autoDelete": "ON_PERMANENT_INSTANCE_DELETION"
          }
        },
      },
      "preservedStateFromConfig": {
        "metadata": {
          "role": "primary",
          "my-key": "my-value"
        },
        "externalIPs": {
          "nic0": {
            "ipAddress": {
              "literal": "130.211.181.55",
              "address":  "/projects/example-project/regions/us-east1/addresses/node-1-nat-ip"
            },
            "autoDelete": "NEVER"
          }
        },
      }
    },
    {
      "instance": ".../example-project/zones/us-east1-c/instances/node-2",
      "instanceStatus": "RUNNING",
      ...
      "preservedStateFromPolicy": {
        ...
      },
      "preservedStateFromConfig": {
        ...
      }
    },
    ...
  ]
}

関連する静的 IP アドレス リソースの表示

MIG 内のマネージド インスタンスに割り当てられる静的 IP アドレス(Address リソース)を取得するには、これらのインスタンスの保持態を表示します。静的アドレスは ipAddress.address フィールドで確認できます。

MIG またはインスタンスが存在しなくなったものの、IP アドレスの予約が引き続き存在する場合は、静的内部または外部アドレス予約の一覧を表示できます。

ステートフル構成の削除

ステートフル構成の削除は、次のシナリオで役立ちます。

  • スタンドアロン VM のステートフル MIG への移行が完了したので、ステートフル構成をインスタンスごとの構成から共通のステートフル ポリシーに移行したい。
  • ワークロードを再構築し、VM インスタンスで状態を維持する必要がなくなった。
  • テスト用のステートフル構成の作成が完了したので、それをクリーンアップしたい。

このセクションでは、インスタンスごとの構成でステートフル ポリシーを完全に削除する方法について説明します。ステートフル ポリシーまたはインスタンスごとの構成のサブセットのみを削除する必要がある場合は、次のセクションをご覧ください。

ステートフル ポリシーの削除

ステートフル ポリシーを削除すると、MIG 内のすべての VM に影響します。MIG では、個々のインスタンスのインスタンスごとの構成でリソースが構成されていない限り、ステートフル ポリシーで構成されたすべてのステートフル リソースがステートレスとして扱われます。後続のインスタンスの再作成、自動修復、または更新のオペレーションでは、現在のステートレス リソースの状態が失われる可能性があります。

  • インスタンス テンプレートで定義されているソースからディスクの削除や再作成を行えます。
  • IP アドレスは変更される場合があります。

コンセプトについては、リソースをステートフル ポリシーから削除した場合の保持状態への影響をご覧ください。

gcloud

ステートフル ポリシーからすべての構成を削除するには、該当するフラグを指定して gcloud compute instance-groups managed update コマンドを実行します。使用できるフラグは次のとおりです。

  • --remove-stateful-disks: 構成したすべてのステートフル ディスクのデバイス名を一覧表示します。
  • --remove-stateful-internal-ips: すべての構成済みのステートフル内部 IP アドレスのネットワーク インターフェース名を一覧表示します。
  • --remove-stateful-external-ips: すべての構成済みのステートフル外部 IP アドレスのネットワーク インターフェース名を一覧表示します。

たとえば、ステートフル ポリシーにデバイス名が data-disklogs-disk の 2 つのステートフル ディスクの構成と、nic0 ネットワーク インターフェース内のステートフルな内部および外部 IP アドレスの構成が含まれている場合は、次のコマンドを実行してポリシーをクリアします。

gcloud compute instance-groups managed update example-group \
    --zone us-east1-c \
    --remove-stateful-disks data-disk,logs-disk \
    --remove-stateful-internal-ips nic0 \
    --remove-stateful-external-ips nic0

MIG は、ステートフル ポリシーから data-disk および logs-disk のステートフル構成と、nic0 ネットワーク インターフェースのステートフル内部 IP 構成およびステートフル外部 IP 構成を削除します。その結果、ディスクまたは IP アドレスがインスタンスごとに構成されない限り、MIG はグループ内のマネージド インスタンスのすべての保持態からそれらのディスクと静的 IP アドレスを自動的かつ非同期的に削除します。

REST

ステートフル ポリシーのすべての構成を削除するには、statefulPolicy フィールドを null に設定します。その場合、instanceGroupManagers.patch か、regionInstanceGroupManagers.patch を使用します。メソッドを呼び出します。

たとえば、次の呼び出しではステートフル ポリシー構成が削除されます。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": null
}

リソースがインスタンスごとの構成でも構成されている場合を除き、MIG でステートフル ポリシー構成が消去され、グループ内のすべてのマネージド インスタンスの保持状態からステートフル リソースが自動的に非同期で削除されます。

特定の VM のステートフル構成の削除

特定の VM のステートフル構成の削除は、次の 2 つのステップで行います。

  1. 関連付けられているインスタンスごとの構成を削除します。
  2. マネージド インスタンスに変更を適用します。変更を手動で適用するか、自動的に適用するかを選択できます。

変更が適用されると、グループのステートフル ポリシーで構成されている場合を除いて、インスタンスごとの構成で以前に構成されたすべてのステートフル アイテムがステートレスとして扱われます。その後 VM が再作成または更新されると、アイテムの状態が失われます。

  • インスタンス テンプレート内のソースからディスクが接続解除することも、再作成することもできます。
  • メタデータが削除されるか、インスタンス テンプレートで定義されている値にリセットされます。
  • IP アドレスは変更される場合があります。

詳細については、インスタンスごとの構成からアイテムを削除した場合の保持状態への影響をご覧ください。

gcloud

インスタンスごとの構成を完全に削除するには、gcloud compute instance-groups managed instance-configs delete コマンドを実行します。

オプションの --update-instance フラグを使用して、変更をすぐにインスタンスに適用します(デフォルト)。--no-update-instance フラグを設定すると、次にインスタンスを再作成または更新するときに変更が適用されます。

--instance-update-minimal-action フラグは、--update-instance フラグと組み合わせて使用します。

gcloud compute instance-groups managed instance-configs delete INSTANCE_GROUP_NAME \
  --instances INSTANCE_NAME[,INSTANCE_NAME,...] \
  [--no-update-instance | --update-instance] \
  [--instance-update-minimal-action MINIMAL_ACTION]

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

  • INSTANCE_GROUP_NAME: MIG の名前。
  • INSTANCE_NAME: インスタンスごとの構成を削除するインスタンスの名前。
  • MINIMAL_ACTION: インスタンスごとの構成の更新を VM に適用する際に実行する最小のアクション。この値は次のいずれかにする必要があります。
    • none: アクションなし。
    • refresh: VM を停止せずに適用できる更新を適用します。
    • restart: VM を停止してから再起動します。
    • replace: VM を再作成します。

たとえば、example-group 内の node-1 に対するインスタンスごとの構成を削除するには、次のコマンドを実行します。

gcloud compute instance-groups managed instance-configs delete example-group \
  --instances node-1 \
  --update-instance

VM が更新されて構成の変更が適用されたため、MIG で node-1 に対するインスタンスごとの構成が削除され、以前のステートフル アイテムはステートフルとして扱われなくなります。

REST

1 つまたは複数のインスタンスのインスタンスごとの構成を完全に削除するには、instanceGroupManagers.deletePerInstanceConfigs または regionInstanceGroupManagers.deletePerInstanceConfigs メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/deletePerInstanceConfigs

{
  "names": ["INSTANCE_NAME",...]
}

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

  • PROJECT_ID: リクエストのプロジェクト ID
  • ZONE: MIG が配置されているゾーン(ゾーン MIG に適用)
    • リージョン MIG の場合は、zones/ZONEregions/REGION に置き換え、MIG のリージョンを指定します
  • INSTANCE_GROUP_NAME: MIG の名前
  • INSTANCE_NAME: インスタンスごとの構成を削除するインスタンスの名前。

deletePerInstanceConfig メソッドは、指定されたインスタンスごとの構成を削除しますが、関連する VM に変更を適用することはありません。この変更は、インスタンスの再作成または更新時に VM に適用されます。選択した VM を手動で更新して、変更を適用します。

たとえば、example-group 内の node-1 に対するインスタンスごとの構成を削除するには、次のメソッドを呼び出します。

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-group/deletePerInstanceConfigs

{
  "names": ["node-1"]
}

このメソッドでは、example-group から node-1 インスタンスに対するインスタンスごとの構成を削除します。この変更は、インスタンスの再作成時または更新時にマネージド インスタンスに適用されます。

構成の変更を適用するには、instanceGroupManagers.applyUpdatesToInstances メソッドを呼び出します。

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-c/instances/node-1"]
}

このメソッドでは、マネージド インスタンスの保持状態からステートフル アイテムを削除します。

フィードバック

ステートフル MIG に関するユースケース、課題、フィードバックを募集しています。mig-discuss@google.com にフィードバックをお寄せください。

次のステップ