在區域代管執行個體群組 (MIG) 中,如要在區域的所選區域間維持平均個數的虛擬機器 (VM) 執行個體,請使用主動式執行個體重新分配功能。這項設定選項可在發生區域層級的故障時,最大化應用程式的可用性。
根據預設,系統會啟用地區性 MIG 的主動式執行個體重新分配功能。停用主動式執行個體重新分配功能後,群組就不會嘗試主動重新分配區域間的 VM。如果您需要執行下列操作,停用主動式執行個體重新分配功能就非常實用:
- 刪除或捨棄群組中的 VM,但不影響其他正在執行的 VM。舉例來說,您可以在工作完成後刪除相關批次 worker VM,而不影響其他 worker。
- 避免主動式重新分配功能不小心自動刪除了有狀態工作負載 VM。
- 將 MIG 的目標分配型態設為
BALANCED或ANY_SINGLE_ZONE。
建立地區代管執行個體群組時,您可以停用主動式執行個體重新分配功能。您也可以為現有的區域性 MIG 啟用或停用這項功能。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 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,請使用 Google Cloud console、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 NONETerraform
如果您尚未建立執行個體範本,指定 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 console、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。
如果 VM 在各個可用區的分布不均 (兩個可用區之間的 VM 數量相差 2 個以上),地區 MIG 就不允許啟用主動式執行個體重新分配。這是為了防止系統從含有較多 VM 的區域意外自動刪除 VM (系統會觸發這項作業來達成分布均勻的狀態)。
後續步驟
- 瞭解如何查看 MIG 和 VM 的相關資訊。
- 瞭解如何在 MIG 中使用 VM,包括新增、重建及移除執行個體。