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

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

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

事前準備

  • 請參閱使用有狀態 MIG 的時機,以及有狀態 MIG 的運作方式。
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

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

      gcloud init

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

  • 設定預設區域和可用區。
  • REST

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

      安裝 Google Cloud CLI。

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

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

將具狀態設定套用至受管理執行個體

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

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

如需更多概念資訊,請參閱「如何將具狀態的設定套用至受管理執行個體」。

從有狀態政策套用設定

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

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

正在驗證所有 VM

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

驗證特定 VM

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

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

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

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

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

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

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

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

查看 MIG 的有狀態政策

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

控制台

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

    前往「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.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

如要列出 MIG 中的所有個別執行個體設定,請呼叫 instanceGroupManagers.listPerInstanceConfigs 或 regionInstanceGroupManagers.listPerInstanceConfigs 方法。

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

REST

如要刪除有狀態政策中的所有設定,請使用 instanceGroupManagers.patch 或 regionInstanceGroupManagers.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-group 中 node-1 的 執行個體設定,請執行下列指令:

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

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

REST

如要完全刪除一或多個執行個體的執行個體設定,請使用 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/ZONE 替換為 regions/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。

後續步驟