在 MIG 中套用、查看及移除有狀態設定


有狀態的代管執行個體群組 (MIG) 建立或更新有狀態的設定後,您可以執行下列操作:

  • 套用有狀態設定,讓設定生效。
  • 查看有狀態設定,以及代管執行個體的有效保留狀態。
  • 移除有狀態設定。

事前準備

  • 請參閱使用有狀態 MIG 的時機,以及有狀態 MIG 的運作方式
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 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. 安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

將有狀態設定套用至代管執行個體

您或 MIG 套用有狀態設定後,設定就會生效。

  • 有狀態政策的設定變更會自動套用至所有代管執行個體。
  • 您可以手動或自動套用個別執行個體設定中的設定變更。

如要進一步瞭解概念,請參閱如何將具狀態的設定套用至受管理執行個體

從有狀態政策套用設定

有狀態政策中的所有設定變更,都會自動套用至所有代管執行個體。更新有狀態政策不會中斷虛擬機器 (VM) 執行個體。

確認是否已套用具狀態政策

驗證所有 VM

如要確認有狀態政策的變更是否已套用至所有 VM,請檢查變更後 MIG 是否已趨於穩定

驗證特定 VM

如要確認有狀態政策的變更是否已套用至 MIG 中的特定 VM,請查看代管執行個體保留的狀態,並檢查代管執行個體的 preservedStateFromPolicypreservedStateFromConfig 中是否包含有狀態政策的所有磁碟。

從每個執行個體的設定套用有狀態設定

您可以手動或自動套用新的或更新的執行個體設定。請採取下列其中一種做法:

  • 選擇性地將更新的設定套用至特定執行個體:使用這種方法可控管更新的干擾、時間和順序。
  • 透過滾動式更新自動套用更新的設定:使用這種方法,以自動滾動的方式將設定變更套用至受管理執行個體。

這兩種方法都會套用個別執行個體設定和未套用的版本或執行個體範本 (如適用) 的待處理更新。

選擇性地將更新後的設定套用至特定執行個體

如要手動將每個執行個體的設定套用至特定執行個體,請按照下列步驟操作:

  1. 設定機會更新政策,以免與自動主動式更新發生競爭狀況。
  2. 建立或更新每個執行個體的設定。
  3. 如要將更新後的設定套用至特定 VM,請選擇性更新這些 VM。

或者,您也可以採用下列做法:

  • 使用 gcloud CLI 建立或更新每個執行個體的設定時,請使用 --update-instance 標記,立即將設定套用至相關聯的受管理執行個體。
  • 手動建立新執行個體時,請在建立時指定名稱和每個執行個體的設定。MIG 會在建立 VM 時立即套用設定。

透過滾動式更新自動套用更新的設定

為 MIG 設定主動式滾動更新,自動以滾動方式將設定更新套用至對應的代管執行個體。

有狀態的 MIG 必須採用下列設定,才能使用主動式更新政策:

這項設定可確保 MIG 重新建立現有的有狀態執行個體,不會以其他執行個體取代。

您也可以在群組的更新政策中,將最少動作設為 REFRESH,盡可能確保系統套用執行個體設定變更時不會停止執行個體。

確認是否已套用每個執行個體的設定

驗證所有執行個體專屬設定

如要確認 MIG 中的所有執行個體設定是否已套用,請查看 MIG 的有狀態狀態,並檢查 status.stateful.perInstanceConfigs.allEffective

  • true:群組中的所有執行個體設定都已套用並生效,或群組沒有執行個體設定。
  • false:群組至少有一項尚未生效的每例設定:您尚未套用設定,或設定正在套用中。

驗證特定執行個體設定

如要確認特定執行個體設定的變更是否已套用至對應的 VM,請查看所有執行個體設定,並檢查特定執行個體設定的 status 欄位:

  • UNAPPLIED:您已建立或更新個別執行個體設定,需要透過手動更新執行個體,將設定套用至 VM。
  • APPLYING:MIG 目前正在將新的或更新的每個執行個體設定套用至 VM。
  • EFFECTIVE:個別執行個體設定已成功套用至 VM,並生效。
  • UNAPPLIED_DELETION:系統已設定要刪除每個執行個體的設定。您必須對 VM 執行手動執行個體更新,才能套用這項更新。
  • DELETING:系統正在刪除個別執行個體設定,並將變更套用至 VM。

查看有狀態設定和保留狀態

針對下列工作取得有狀態 MIG 的相關資訊:

  • 確認 MIG 是否有具狀態設定,以及這項設定是否已套用並生效。
  • 查看 MIG 中所有執行個體共用的有狀態設定,這些設定會儲存在有狀態政策中。
  • 查看特定於個別執行個體的有狀態設定 (儲存在每個執行個體的設定中),並檢查這項設定是否已套用且有效。
  • 根據有狀態政策和套用的個別執行個體設定,查看 MIG 中每個執行個體的有效保留狀態

查看 MIG 有狀態設定的狀態

如果 MIG 具有任何有狀態的設定,也就是有狀態的政策或至少一個非空白的每個執行個體設定,系統就會將 MIG 視為有狀態。

如果您建立有狀態政策,MIG 會自動套用該政策,使其生效。如果您建立每個執行個體的設定,可以決定稍後再套用。

如要確認 MIG 是否有有狀態的設定,以及是否已套用所有執行個體專屬設定,請使用 gcloud CLI 或 REST 查看 MIG 的有狀態狀態。

gcloud

如要確認 MIG 是否有狀態設定,請執行 gcloud compute instance-groups managed describe 指令,查看 MIG 的有狀態狀態。例如:

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:群組具有有狀態設定,也就是群組具有非空白的有狀態政策,或至少一個非空白的每個執行個體設定。
    • false:沒有有狀態設定。
  • perInstanceConfigs.allEffective
    • true:群組中的所有執行個體設定都已套用並生效,或群組沒有執行個體設定。
    • false:群組至少有一項尚未生效的例項設定:您尚未套用設定,或系統正在套用設定。

REST

如要確認 MIG 是否具有有狀態的設定,請使用 instanceGroupManagers.getregionInstanceGroupManagers.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:群組具有有狀態設定,也就是群組具有非空白的有狀態政策,或至少一個非空白的每個執行個體設定。
    • false:沒有有狀態設定。
  • perInstanceConfigs.allEffective
    • true:群組中的所有執行個體設定都已套用並生效,或群組沒有執行個體設定。
    • false:群組至少有一項尚未生效的例項設定:您尚未套用設定,或系統正在套用設定。

查看 MIG 的有狀態政策

如要查看 MIG 的具狀態政策,請使用 Google Cloud 控制台、gcloud CLI 或 REST 檢查群組詳細資料。

主控台

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往執行個體群組

  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.getregionInstanceGroupManagers.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

如要列出 MIG 中的所有執行個體設定,請執行 gcloud compute instance-groups managed instance-configs list 指令。

gcloud compute instance-groups managed instance-configs list NAME

更改下列內容:

  • NAME:要列出每個執行個體設定的 MIG 名稱

使用標準 --filter flag 篩選清單。

舉例來說,如要列出 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.listPerInstanceConfigsregionInstanceGroupManagers.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/ZONE 替換為 regions/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 會在兩個欄位中,為每個受管理執行個體產生並設定有效的保留狀態:

  • 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-groupnode-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.listManagedInstancesregionInstanceGroupManagers.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,且包含 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-disklogs-disk 有狀態設定,以及 nic0 網路介面的有狀態內部和外部 IP 設定。因此,除非磁碟或 IP 位址也設定在每個執行個體設定中,否則 MIG 會自動從群組中所有代管執行個體的保留狀態中,非同步移除這些磁碟和靜態 IP 位址。

REST

如要刪除有狀態政策中的所有設定,請使用 instanceGroupManagers.patchregionInstanceGroupManagers.patch,將 statefulPolicy 欄位設為 null。方法。

舉例來說,下列呼叫會移除有狀態的政策設定:

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

{
  "statefulPolicy": null
}

除非資源也設定在每個執行個體設定中,否則 MIG 會清除具狀態政策設定,並自動從群組中所有代管執行個體的保留狀態移除具狀態資源 (非同步)。

移除特定 VM 的具狀態設定

如要移除特定 VM 的有狀態設定,請按照下列兩個步驟操作:

  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-groupnode-1 的每個執行個體設定,請執行下列指令:

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

MIG 會刪除 node-1 的每個執行個體設定,且由於 VM 已更新並套用設定變更,MIG 不再將先前有狀態的項目視為有狀態。

REST

如要完全刪除一或多個執行個體的執行個體專屬設定,請使用 instanceGroupManagers.deletePerInstanceConfigsregionInstanceGroupManagers.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/ZONE 替換為 regions/REGION,並指定 MIG 的區域
  • INSTANCE_GROUP_NAME:MIG 的名稱
  • INSTANCE_NAME:要刪除執行個體設定的執行個體名稱

deletePerInstanceConfig 方法會刪除指定的每個執行個體設定,但不會將變更套用至相關聯的 VM。重新建立或更新執行個體時,系統會將變更套用至 VM。手動更新所選 VM,即可套用變更。

舉例來說,如要刪除 example-groupnode-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

後續步驟