本文档介绍了如何在托管式实例组 (MIG) 中关闭修复发生故障和健康状况不佳的虚拟机的功能,以及如何将 MIG 配置为修复虚拟机(如果已关闭)。
默认情况下,MIG 通过重新创建虚拟机来自动修复实例组中失败的虚拟机。如果您配置了基于应用的健康检查,MIG 还会修复应用未通过健康检查的健康状况不佳的虚拟机。根据基于应用的健康检查来修复虚拟机也称为自动修复。
如果您不希望 MIG 修复发生故障的虚拟机或健康状况不佳的虚拟机,则可以在 MIG 中关闭修复功能。如果您要排查发生故障的虚拟机、实现您自己的修复逻辑,或者监控应用健康状况而不修复健康状况不佳的虚拟机,则关闭修复功能非常有用。
如需检查 MIG 中是否已停用修复功能,请参阅检查 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.
在 Google Cloud 控制台中,前往实例群组页面。
点击要关闭修复的 MIG 的名称。
点击修改。
在虚拟机实例生命周期部分中,将失败时的默认操作字段设置为无操作。
如果您配置了自动修复,并且不希望 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 控制台中,前往实例群组页面。
点击要在其中关闭自动修复功能的 MIG 的名称。
点击修改。
在虚拟机实例生命周期部分中,将未能通过健康检查时字段设置为无操作。
点击保存。
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 控制台中,前往实例群组页面。
点击要在其中开启修复功能的 MIG 的名称。
点击修改。
在虚拟机实例生命周期部分中,执行以下操作:
- 如需修复发生故障的虚拟机,请将失败时的默认操作字段设置为修复实例。
- 如需修复健康状况不佳的虚拟机,请将未能通过健康检查时字段设置为修复实例。如果您将此值设置为默认操作,则自动修复会使用您为失败时的默认操作字段配置的相同设置。
完成后,点击保存以应用更改。
- 将
MIG_NAME
替换为 MIG 的名称。 default-action
ORrepair
:如果您希望自动修复使用为修复发生故障的虚拟机配置的相同设置,请将该值设置为default-action
。例如,当您关闭修复发生故障的虚拟机的功能时,MIG 也会关闭自动修复功能。如果您想单独控制对健康状况不佳的虚拟机的修复,请将该值设置为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
:如果您希望自动修复使用与修复发生故障的虚拟机相同的设置,请将该值设置为DEFAULT_ACTION
。例如,当您关闭修复发生故障的虚拟机的功能时,MIG 也会关闭自动修复功能。如果您想单独配置自动修复,请将该值设置为REPAIR
。- 检查 MIG 中是否停用了修复功能。
- 通过列出实例错误来调查失败的虚拟机中的错误。
- 检查虚拟机的运行状况。
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 身份验证文档中的使用 REST 时进行身份验证。
在 MIG 中关闭修复
在 MIG 中关闭修复功能时,默认情况下,发生故障的虚拟机修复和自动修复功能都会关闭。如果您只想关闭自动修复功能,请参阅关闭自动修复功能。
控制台
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
。这可确保即使关闭了修复发生故障的虚拟机的功能,自动修复健康状况不佳的虚拟机的功能仍能继续正常运行。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
。这可确保即使关闭了修复发生故障的虚拟机的功能,自动修复健康状况不佳的虚拟机的功能仍能继续正常运行。例如,在可用区级 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 修复任何健康状况不佳的虚拟机,可以单独关闭自动修复功能。这不会关闭修复发生故障的虚拟机的功能。
控制台
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 会修复发生故障的虚拟机;如果配置了自动修复,MIG 还会修复健康状况不佳的虚拟机。如果您关闭了修复或自动修复功能,或者同时关闭了两者,则可以重新将其开启。
控制台
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
" } }替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-08。
-