本文說明如何允許地區代管執行個體群組 (MIG) 在替代可用區修復虛擬機器 (VM) 執行個體,前提是 MIG 無法在原始可用區修復 VM。如要進一步瞭解 MIG 中的修復作業,請參閱「關於修復 VM 以確保高可用性」一文。
建立區域 MIG 時,請選取 MIG 要分配 VM 的一或多個可用區。根據預設,如果 MIG 中的 VM 發生故障,MIG 會嘗試在原始可用區修復該 VM。您也可以選擇允許 MIG 在其他選取的可用區修復該 VM。如果 MIG 無法在原始可用區修復 VM,這個做法就很有用。MIG 會根據可用容量和配額選擇替代區域。
限制
將區域性 MIG 設為在替代可用區修復 VM 時,適用下列限制:
系統不支援下列設定的區域性 MIG:
目標分配型態為
EVEN或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
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳情請參閱 Set up authentication for a local development environment。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
允許在替代可用區修復
如要允許 MIG 在替代可用區修復 VM,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
如果您已有 MIG,請按照下列步驟操作:
- 按一下 MIG 名稱。
- 按一下 [編輯]。
如果還沒有 MIG,請執行下列步驟:
- 點選「建立執行個體群組」。
- 輸入名稱。
- 選取「執行個體範本」。
- 在「Location」(位置) 專區中,選取「Multiple zones」(多可用區),然後選取區域和可用區。
在「目標分配型態」下拉式選單中,選取「平衡」或「不限」。
如果選取「平衡」,請在隨即顯示的對話方塊中,按一下「停用執行個體重新分配」。
如要選取「任何」,請先刪除自動調度資源設定。如要刪除自動調度資源,請在「自動調度資源模式」下拉式選單中,按一下「刪除自動調度資源設定」。
在「VM instance lifecycle」(VM 執行個體生命週期) 部分,確認下列欄位已設為以下值:
「失敗時的預設動作」清單設為「修復執行個體」。
「VM 執行個體修復期間的更新設定」設為「更新執行個體設定」。
在「在修復 VM 執行個體時變更可用區」部分,勾選「允許在替代可用區修復 VM」核取方塊。
其他設定可以保留預設值,也可以修改欄位。
完成後,請按一下現有 MIG 的「儲存」,或是新 MIG 的「建立」。
gcloud
如要設定現有 MIG,以便在替代可用區修復 VM,請使用 beta
update指令:gcloud beta compute instance-groups managed update MIG_NAME \ --on-repair-allow-changing-zone=YES \ --force-update-on-repair \ --region=REGION如要建立可在替代可用區修復 VM 的 MIG,請使用 beta
create指令:gcloud beta compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=SIZE \ --zones=ZONES \ --target-distribution-shape=SHAPE \ --instance-redistribution-type=none \ --on-repair-allow-changing-zone=YES \ --force-update-on-repair更改下列內容:
MIG_NAME:MIG 的名稱。INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
SIZE:MIG 的目標大小。ZONES:要在 MIG 中建立 VM 的區域可用區清單。SHAPE:目標分配型態。這個值可以是balanced或any。REGION:MIG 所在的區域。
Terraform
如果您尚未建立執行個體範本,請建立執行個體範本,指定 MIG 中每個 VM 的機型、開機磁碟映像檔、網路和其他 VM 屬性。
如要建立可在替代可用區修復 VM 的 MIG,請使用
google_compute_region_instance_group_manager資源。如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
如要設定現有 MIG 在替代可用區修復 VM,請使用 beta
regionInstanceGroupManagers.patch方法:PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "onRepair": { "allowChangingZone": "YES" }, "forceUpdateOnRepair": "YES" } }如要建立可在替代可用區修復 VM 的 MIG,請使用 beta
regionInstanceGroupManagers.insert方法:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": SIZE, "distributionPolicy": { "targetShape": "SHAPE" } "updatePolicy": { "instanceRedistributionType": none } "instanceLifecyclePolicy": { "forceUpdateOnRepair": "YES", "onRepair": { "allowChangingZone": "YES" } } }更改下列內容:
PROJECT_ID:您的專案 ID。REGION:MIG 所在的區域。MIG_NAME:MIG 的名稱。INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:- 如果是區域執行個體範本:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 全域執行個體範本:
INSTANCE_TEMPLATE_ID
- 如果是區域執行個體範本:
SIZE:MIG 的目標大小。SHAPE:目標分配型態。這個值可以是BALANCED或ANY。
禁止在替代可用區修復
如果您已將 MIG 設為在替代可用區修復 VM,則可以還原預設設定,讓 MIG 在原始可用區修復 VM。
如要禁止在替代可用區修復,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下 MIG 名稱。
按一下 [編輯]。
前往「VM 執行個體生命週期」一節。
在「在 VM 執行個體修復期間變更可用區」部分,取消勾選「允許在替代可用區修復 VM」核取方塊。
按一下 [儲存]。
gcloud
如要禁止在替代可用區修復,請使用 beta
update指令:gcloud beta compute instance-groups managed update MIG_NAME \ --on-repair-allow-changing-zone=NO \ --region=REGION更改下列內容:
MIG_NAME:MIG 的名稱。REGION:MIG 所在的區域。
REST
如要禁止在替代可用區修復,請使用 beta
regionInstanceGroupManagers.patch方法:PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "onRepair": { "allowChangingZone": "NO" } } }更改下列內容:
PROJECT_ID:您的專案 ID。REGION:MIG 所在的區域。MIG_NAME:MIG 的名稱。
後續步驟
- 檢查 MIG 中的修復設定
- 列出代管執行個體,即可查看 VM 的所在區域
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-12-04 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-12-04 (世界標準時間)。"],[],[]] -