在區域代管執行個體群組 (MIG) 中,如要在地區的所選區域間維持平均個數的虛擬機器 (VM) 執行個體,請使用主動式執行個體重新分配功能。這項設定選項可在發生區域層級的故障時,最大化應用程式的可用性。
根據預設,系統會啟用地區性 MIG 的主動式執行個體重新分配功能。停用主動式執行個體重新分配功能後,群組就不會嘗試主動重新分配區域間的 VM。如果您需要執行下列操作,停用主動式執行個體重新分配功能就非常實用:
- 刪除或捨棄群組中的 VM,但不影響其他正在執行的 VM。舉例來說,您可以在工作完成後刪除相關批次工作站 VM,而不影響其他工作站。
- 避免主動式重新分配功能不小心自動刪除了有狀態工作負載 VM。
- 將 MIG 的目標分配型態設為
BALANCED
或ANY_SINGLE_ZONE
。
建立地區代管執行個體群組時,您可以停用主動式執行個體重新分配功能。您也可以為現有的區域性 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.
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 按一下 [Create Instance Group] (建立執行個體群組) 以建立新的執行個體群組。
- 指定執行個體群組的名稱,並自行選擇是否提供相關說明。
- 為執行個體群組選擇執行個體範本,或建立新的範本。
- 指定這個群組中的 VM 數量。對於高可用性工作負載,請記得佈建足夠的 VM,以在發生區域失敗時支援您的應用程式。
- 在「Location」(位置) 下,選取 [Multiple zones] (多區域)。
- 選擇區域,並選取您要使用的可用區。
- 如要停用主動式執行個體重新分配,請在「Instance redistribution」(執行個體重新分配) 之下,取消選取「Allow instance redistribution」(允許重新分配執行個體) 核取方塊。
- 繼續進行其餘的 MIG 建立程序。
INSTANCE_GROUP_NAME
:MIG 的名稱INSTANCE_TEMPLATE_NAME
:要用於群組的執行個體範本名稱TARGET_SIZE
:群組的目標大小ZONES
:您要部署 VM 所在單一地區內的區域清單PROJECT_ID
:這項要求的專案 IDREGION
:執行個體群組的所在地區INSTANCE_GROUP_NAME
:MIG 的名稱INSTANCE_TEMPLATE_NAME
:要用於群組的執行個體範本名稱TARGET_SIZE
:執行個體群組的目標大小ZONE
:您要部署 VM 所在單一地區內的特定區域名稱- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 在清單的「Name」(名稱) 欄底下,按一下要修改的執行個體群組名稱。
- 按一下「編輯」,修改這個代管執行個體群組。
- 在「Instance redistribution」(執行個體重新分配) 之下,取消選取「Allow instance redistribution」(允許執行個體重新分配功能) 核取方塊。
- 按一下 [儲存]。
INSTANCE_GROUP_NAME
:MIG 的名稱REGION
:執行個體群組的所在地區PROJECT_ID
:這項要求的專案 IDREGION
:執行個體群組的所在地區INSTANCE_GROUP_NAME
:MIG 的名稱- 瞭解如何查看 MIG 和 VM 的相關資訊。
- 瞭解如何使用 MIG 中的 VM,包括新增、重新建立及移除執行個體。
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 驗證說明文件中的「Authenticate for using REST」。
建立停用主動式執行個體重新分配功能的群組
如要建立停用主動式執行個體重新分配功能的區域 MIG,請使用 Google Cloud console、gcloud CLI、Terraform 或 REST。
主控台
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
更改下列內容:
例如:
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" } }
更改下列內容:
停用主動式執行個體重新分配功能
如要停用或重新啟用主動式執行個體重新分配功能,請使用Google Cloud console、gcloud CLI 或 REST。
主控台
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
更改下列內容:
REST
如要停用主動式執行個體重新分配功能,請使用
regionInstanceGroupManagers.patch
方法,並將instanceRedistributionType
欄位設為NONE
,如下所示:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "instanceRedistributionType": "NONE" } }
更改下列內容:
啟用主動式執行個體重新分配功能
如要啟用主動式執行個體重新分配功能,請使用與停用主動式執行個體重新分配功能類似的指令,但將執行個體重新分配類型設為
PROACTIVE
。如果您手動刪除或捨棄部分代管執行個體,因而造成地區間 VM 分布不均的狀態,那麼您必須先手動重新平衡群組,才能重新啟用主動式執行個體重新分配功能。任兩個區域之間的 VM 數量不應相差超過 1 個 VM。
如果 VM 在各個可用區的分布不均 (兩個可用區之間的 VM 數量相差 2 個以上),區域性 MIG 就不允許啟用主動式執行個體重新分配。這是為了防止系統從含有較多 VM 的區域意外自動刪除 VM (系統會觸發這項作業來達成分布均勻的狀態)。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-11 (世界標準時間)。
-