本文說明如何關閉代管執行個體群組 (MIG) 中故障和不正常的 VM 修復功能,以及如何設定 MIG 來修復 VM (如果已關閉)。
根據預設,MIG 會重新建立群組中失敗的 VM,自動修復該 VM。如果您已設定以應用程式為準的健康狀態檢查,MIG 也會修復應用程式健康狀態檢查失敗的 VM。根據以應用程式為準的健康狀態檢查結果修復 VM,也稱為自動修復。
如果不想讓 MIG 修復失敗或不正常的 VM,可以關閉 MIG 的修復功能。在您想排解 VM 故障問題、實作自己的修復邏輯,或監控應用程式健康狀態 (而不修復健康狀態不良的 VM) 時,關閉修復功能會很有幫助。
如要檢查 MIG 是否已停用修復功能,請參閱檢查 MIG 是否已停用修復功能。
如要進一步瞭解 MIG 中的修復作業,請參閱「關於修復 VM 以確保高可用性」一文。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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」(執行個體群組) 頁面。
按一下要停用修復功能的 MIG 名稱。
按一下 [編輯]。
在「VM instance lifecycle」(VM 執行個體生命週期) 區段中,將「Default action on failure」(失敗時的預設動作) 欄位設為「No action」(沒有動作)。
如果您已設定自動修復功能,但不想讓 MIG 關閉自動修復功能,請將「健康狀態檢查失敗時」欄位設為「修復執行個體」。
按一下 [儲存]。
MIG_NAME
:執行個體群組的名稱。ZONE
:MIG 所在的可用區。如為區域 MIG,請使用--region=REGION
旗標。- 如果是區域 MIG,請使用
instanceGroupManagers.patch
方法。 - 如果是區域 MIG,請使用
regionInstanceGroupManagers.patch
方法。 - 如果是區域 MIG,請使用
beta.instanceGroupManagers.patch
方法。 - 如果是區域 MIG,請使用
beta.regionInstanceGroupManagers.patch
方法。 PROJECT_ID
:您的專案 ID。MIG_NAME
:MIG 的名稱。ZONE
:MIG 所在的可用區。如果是區域 MIG,請在網址中使用regions/REGION
。前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要關閉自動修復功能的 MIG 名稱。
按一下 [編輯]。
在「VM instance lifecycle」(VM 執行個體生命週期) 區段中,將「On failed health check」(健康狀態檢查失敗時) 欄位設為「No action」(不採取任何動作)。
按一下 [儲存]。
MIG_NAME
:MIG 的名稱。ZONE
:MIG 所在的可用區。如為區域 MIG,請使用--region=REGION
旗標。- 如果是區域 MIG,請使用
beta.instanceGroupManagers.patch
方法。 - 如果是區域 MIG,請使用
beta.regionInstanceGroupManagers.patch
方法。 PROJECT_ID
:您的專案 ID。ZONE
:MIG 所在的可用區。如果是區域 MIG,請在網址中使用regions/REGION
。MIG_NAME
:執行個體群組的名稱。前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下要啟用修復功能的 MIG 名稱。
按一下 [編輯]。
在「VM instance lifecycle」(VM 執行個體生命週期) 專區中,執行以下操作:
- 如要修復失敗的 VM,請將「失敗時的預設動作」欄位設為「修復執行個體」。
- 如要修復健康狀態不良的 VM,請將「健康狀態檢查失敗時」欄位設為「修復執行個體」。如果將這個值設為「預設動作」,自動修復功能就會使用您為「失敗時的預設動作」欄位設定的值。
完成後,按一下「儲存」即可套用變更。
- 將
MIG_NAME
替換為 MIG 的名稱。 default-action
ORrepair
:如要讓自動修復功能使用您為 VM 修復作業設定的相同設定,請將值設為default-action
。舉例來說,如果關閉失敗 VM 的修復功能,MIG 也會關閉自動修復功能。如要分開控管狀況不良的 VM 修復作業,請將值設為repair
。- 如果是區域 MIG,請使用
instanceGroupManagers.patch
方法。 - 如果是地區 MIG,請使用
regionInstanceGroupManagers.patch
方法。 - 如果是區域 MIG,請使用
beta.instanceGroupManagers.patch
方法。 - 如果是地區 MIG,請使用
beta.regionInstanceGroupManagers.patch
方法。 PROJECT_ID
:您的專案 ID。ZONE
:MIG 所在的可用區。如果是區域 MIG,請在網址中使用regions/REGION
。MIG_NAME
:MIG 的名稱。DEFAULT_ACTION
ORREPAIR
:如要讓自動修復功能使用與 VM 修復失敗相同的設定,請將值設為DEFAULT_ACTION
。舉例來說,如果關閉失敗 VM 的修復功能,MIG 也會關閉自動修復功能。如要個別設定自動修復功能,請將值設為REPAIR
。- 檢查 MIG 是否已關閉維修功能。
- 如要調查 VM 失敗的原因,請列出執行個體錯誤。
- 檢查 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 中的修復作業
關閉 MIG 的修復功能後,系統預設會停用失敗的 VM 修復和自動修復功能。如要只關閉自動修復功能,請參閱「關閉自動修復功能」。
主控台
gcloud
如要在 MIG 中關閉修復功能,請使用下列
update
指令。這會預設關閉自動修復功能。gcloud compute instance-groups managed update MIG_NAME \ --default-action-on-vm-failure=do-nothing \ --zone=ZONE
如果在 MIG 中設定了自動修復功能,且不想預設關閉這項功能,請使用 beta
update
指令將--action-on-vm-failed-health-check
標記設為repair
。即使關閉修復失敗 VM 的功能,這項設定也能確保健康狀態不良的 VM 繼續自動修復。gcloud beta compute instance-groups managed update MIG_NAME \ --default-action-on-vm-failure=do-nothing \ --action-on-vm-failed-health-check=repair \ --zone=ZONE
更改下列內容:
REST
如要在 MIG 中關閉修復功能,請使用下列 API 方法。這會預設關閉自動修復功能。
舉例來說,在區域 MIG 中發出下列呼叫。這項設定預設會關閉自動修復功能。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
如果在 MIG 中設定自動修復功能,但不想預設關閉自動修復功能,請使用下列 API 方法將
onFailedHealthCheck
標記設為REPAIR
。這樣一來,即使關閉修復失敗的 VM,系統仍會繼續自動修復健康狀態不良的 VM。舉例來說,在區域 MIG 中發出下列呼叫:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING", "onFailedHealthCheck": "REPAIR" } }
更改下列內容:
限制
如果 MIG 具有下列任一項,則無法將
defaultActionOnFailure
欄位設為DO_NOTHING
,在 MIG 中關閉修復功能:關閉自動修復功能
在 MIG 中設定應用程式健康狀態檢查後,如果不想讓 MIG 修復任何健康狀態不良的 VM,可以個別關閉自動修復功能。這項操作不會關閉失敗 VM 的修復作業。
主控台
gcloud
如要關閉 MIG 的自動修復功能,請使用 Beta 版
update
指令,並將--action-on-vm-failed-health-check
旗標設為do-nothing
。舉例來說,如要建立區域 MIG,請使用下列指令:
gcloud beta compute instance-groups managed update MIG_NAME \ --action-on-vm-failed-health-check=do-nothing \ --zone=ZONE
更改下列內容:
REST
如要在 MIG 中關閉自動修復功能,請使用下列 API 方法,並將
--action-on-vm-failed-health-check
標記設為do-nothing
。舉例來說,您可以提出下列要求,關閉區域 MIG 的自動修復功能:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "instanceLifecyclePolicy": { "onFailedHealthCheck": "DO_NOTHING" } }
更改下列內容:
開啟修復或自動修復功能
根據預設,MIG 會修復失敗的 VM,如果已設定自動修復功能,MIG 也會修復健康狀態不良的 VM。如果已關閉修復或自動修復功能,可以重新開啟。
主控台
gcloud
如要在 MIG 中啟用修復功能,請使用
update
指令。如果--action-on-vm-failed-health-check
旗標的值為default-action
,這也會開啟自動修復功能。gcloud compute instance-groups managed update MIG_NAME \ --default-action-on-vm-failure=repair
如果您已個別關閉自動修復功能,並想再次開啟,請使用 beta
update
指令:gcloud beta compute instance-groups managed update MIG_NAME \ --action-on-vm-failed-health-check=
default-action
ORrepair
更改下列內容:
REST
如要在 MIG 中啟用修復功能,請使用下列 API 方法。如果
onFailedHealthCheck
欄位的值為DEFAULT_ACTION
,這項操作也會開啟自動修復功能。舉例來說,在區域 MIG 中提出下列要求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "defaultActionOnFailure": "REPAIR" } }
如果您已個別關閉自動修復功能,並想重新開啟,請使用 Beta 版 API 方法,如下所示:
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "onFailedHealthCheck": "
DEFAULT_ACTION
ORREPAIR
" } }更改下列內容:
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-11 (世界標準時間)。
-