在地區代管執行個體群組 (MIG) 中,如要在地區的所選區域中維持平均個數的虛擬機器 (VM) 執行個體,請使用主動式執行個體重新分配功能。這項設定可在發生區域層級的故障時,最大化應用程式的可用性。
根據預設,系統會啟用地區性 MIG 的主動式執行個體重新分配功能。停用主動式執行個體重新分配功能後,群組就不會嘗試主動重新分配區域間的 VM。如果您需要進行下列操作,這種做法就非常實用:
- 刪除或捨棄群組中的 VM,但不影響其他正在執行的 VM。例如,您可以在工作完成後刪除相關批次工作站 VM,而不影響其他工作站。
- 避免主動式重新分配功能不小心自動刪除有狀態工作負載的 VM。
- 將 MIG 的目標分配型態設為
BALANCED
或ANY_SINGLE_ZONE
。
建立地區 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
-
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.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the 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.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
建立停用主動式執行個體重新分配功能的群組
如要建立地區性 MIG 並停用主動式執行個體重新分配功能,請使用 Google Cloud 主控台、gcloud CLI、Terraform 或 REST。
主控台
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 按一下 [Create Instance Group] (建立執行個體群組) 以建立新的執行個體群組。
- 指定執行個體群組的名稱,並自行選擇是否提供相關說明。
- 為執行個體群組選擇執行個體範本,或建立新的範本。
- 指定這個群組中的 VM 數量。對於高可用性工作負載,請務必佈建足夠的 VM,以便在可用區失效時支援您的應用程式。
- 在「Location」(位置) 下,選取 [Multiple zones] (多區域)。
- 選擇區域,並選取您要使用的可用區。
- 如要停用主動式執行個體重新分配,請在「Instance redistribution」(執行個體重新分配) 下,取消選取「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
- 繼續進行其餘的 MIG 建立程序。
gcloud
如要建立不執行主動式執行個體重新分配功能的新地區 MIG,請使用 gcloud compute instance-groups managed create
指令,並將 --instance-redistribution-type
旗標設為 NONE
。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE_NAME \ --size TARGET_SIZE \ --zones ZONES \ --instance-redistribution-type NONE
更改下列內容:
INSTANCE_GROUP_NAME
:MIG 名稱INSTANCE_TEMPLATE_NAME
:要用於群組的執行個體範本名稱TARGET_SIZE
:群組的目標大小ZONES
:您要部署 VM 所在單一地區內的區域清單
例如:
gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c \ --instance-redistribution-type NONE
Terraform
如果您尚未建立執行個體範本 (用於指定 MIG 中每個 VM 的機器類型、開機磁碟映像檔、網路和其他 VM 屬性),請建立執行個體範本。
如要建立區域性 MIG,請使用 google_compute_region_instance_group_manager
資源。
如要停用區域 MIG 中的主動式執行個體重新分配功能,請加入 update_policy
區塊,並將 instance_redistribution_type
欄位設為 NONE
。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
如要建立不執行主動式執行個體重新分配功能的非自動調度資源區域 MIG,請向 regionInstanceGroupManagers.insert
方法發出 POST
要求。在要求主體中加入 updatePolicy
屬性,並將其 instanceRedistributionType
欄位設為 NONE
。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "targetSize": TARGET_SIZE, "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ] }, "updatePolicy": { "instanceRedistributionType": "NONE" } }
更改下列內容:
PROJECT_ID
:這項要求的專案 IDREGION
:執行個體群組的所在地區INSTANCE_GROUP_NAME
:MIG 名稱INSTANCE_TEMPLATE_NAME
:要用於群組的執行個體範本名稱TARGET_SIZE
:執行個體群組的目標大小ZONE
:您要部署 VM 的單一區域中可用區的名稱
停用主動式執行個體重新分配功能
如要停用或重新啟用主動式執行個體重新分配功能,請使用 Google Cloud 控制台、gcloud CLI 或 REST。
主控台
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 在清單的「Name」(名稱) 欄底下,按一下要修改的執行個體群組名稱。
- 按一下「編輯」,修改這個代管執行個體群組。
- 在「Instance redistribution」(執行個體重新分配) 下方,取消選取「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
- 按一下 [儲存]。
gcloud
如要停用主動式執行個體重新分配功能,請使用 compute instance-groups managed update
指令,並將 --instance-redistribution-type
旗標設為 NONE
,如下所示:
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --instance-redistribution-type NONE \ --region REGION
更改下列內容:
INSTANCE_GROUP_NAME
:MIG 名稱REGION
:執行個體群組的所在地區
REST
如要停用主動式執行個體重新分配功能,請使用 regionInstanceGroupManagers.patch
方法,並將 instanceRedistributionType
欄位設為 NONE
,如下所示:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "instanceRedistributionType": "NONE" } }
更改下列內容:
PROJECT_ID
:這項要求的專案 IDREGION
:執行個體群組的所在地區INSTANCE_GROUP_NAME
:MIG 名稱
啟用主動式執行個體重新分配功能
如要啟用主動式執行個體重新分配功能,請使用與停用主動式執行個體重新分配功能類似的指令,但將執行個體重新分配類型設為 PROACTIVE
。
如果您手動刪除或捨棄部分代管執行個體,因而造成地區間 VM 分布不均的狀態,那麼您必須先手動重新平衡群組,才能重新啟用主動式執行個體重新分配功能。任兩個區域之間的 VM 數量差異不應超過 1 個 VM。
區域性 MIG 不允許在 VM 在各區域間分布不均的狀態下 (兩個區域之間的 VM 數量相差 2 個以上) 啟用主動式執行個體重新分配。這是為了防止系統從含有較多 VM 的區域意外自動刪除 VM (系統會觸發這項作業來達成分布均勻的狀態)。
後續步驟
- 瞭解如何查看 MIG 及其 VM 的相關資訊。
- 瞭解如何在 MIG 中使用 VM,包括新增、重新建立及移除執行個體。