本文档介绍了如何在托管式实例组 (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: ConsoleWhen 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.
 REST如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI: gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。 如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。 在 MIG 中关闭修复在 MIG 中关闭修复功能时,默认情况下,发生故障的虚拟机修复和自动修复功能都会关闭。如果您只想关闭自动修复功能,请参阅关闭自动修复功能。 控制台- 在 Google Cloud 控制台中,前往实例群组页面。 
- 点击要关闭修复的 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替换以下内容: - MIG_NAME:实例组的名称。
- ZONE:您的 MIG 所在的可用区。 对于区域级 MIG,请使用- --region=REGION标志。
 REST如需在 MIG 中关闭修复功能,请使用如下所示的 API 方法。此操作默认会关闭自动修复功能。 - 对于可用区级 MIG,请使用 instanceGroupManagers.patch方法。
- 对于区域级 MIG,请使用 regionInstanceGroupManagers.patch方法。
 例如,在可用区级 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,请使用 beta.instanceGroupManagers.patch方法。
- 对于区域级 MIG,请使用 beta.regionInstanceGroupManagers.patch方法。
 例如,在可用区级 MIG 中进行以下调用: PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING", "onFailedHealthCheck": "REPAIR" } }替换以下内容: - PROJECT_ID:您的项目 ID。
- MIG_NAME:MIG 的名称。
- ZONE:该 MIG 所在的可用区。 对于区域级 MIG,请在网址中使用- regions/REGION。
 限制如果 MIG 具有以下任一条件,则无法通过将 defaultActionOnFailure字段设置为DO_NOTHING来停用 MIG 中的修复功能:关闭自动修复功能在 MIG 中配置应用健康检查后,如果您不希望 MIG 修复任何健康状况不佳的虚拟机,可以单独关闭自动修复功能。这不会关闭修复发生故障的虚拟机的功能。 控制台- 在 Google Cloud 控制台中,前往实例群组页面。 
- 点击要在其中关闭自动修复功能的 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替换以下内容: - MIG_NAME:MIG 的名称。
- ZONE:该 MIG 所在的可用区。 对于区域级 MIG,请使用- --region=REGION标志。
 REST如需在 MIG 中关闭自动修复功能,请使用如下所示的 API 方法,并将 --action-on-vm-failed-health-check标志设置为do-nothing。- 对于可用区级 MIG,请使用 beta.instanceGroupManagers.patch方法。
- 对于区域级 MIG,请使用 beta.regionInstanceGroupManagers.patch方法。
 例如,发出以下请求可在可用区级 MIG 中关闭自动修复功能: POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "instanceLifecyclePolicy": { "onFailedHealthCheck": "DO_NOTHING" } }替换以下内容: - PROJECT_ID:您的项目 ID。
- ZONE:该 MIG 所在的可用区。对于区域级 MIG,请在网址中使用- regions/REGION。
- MIG_NAME:实例组的名称。
 开启修复或自动修复功能默认情况下,MIG 会修复发生故障的虚拟机;如果配置了自动修复,MIG 还会修复健康状况不佳的虚拟机。如果您关闭了修复或自动修复功能,或者同时关闭了两者,则可以重新将其开启。 控制台- 在 Google Cloud 控制台中,前往实例群组页面。 
- 点击要在其中开启修复功能的 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-actionORrepair替换以下内容: - 将 MIG_NAME替换为 MIG 的名称。
- default-actionOR- repair:如果您希望自动修复使用为修复发生故障的虚拟机配置的相同设置,请将该值设置为- default-action。例如,当您关闭修复发生故障的虚拟机的功能时,MIG 也会关闭自动修复功能。如果您想单独控制对健康状况不佳的虚拟机的修复,请将该值设置为- repair。
 REST如需在 MIG 中开启修复功能,请使用如下所示的 API 方法。如果 onFailedHealthCheck字段的值为DEFAULT_ACTION,这也会开启自动修复功能。- 对于可用区级 MIG,请使用 instanceGroupManagers.patch方法。
- 对于区域级 MIG,请使用 regionInstanceGroupManagers.patch方法。
 例如,在可用区级 MIG 中发出以下请求: PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "defaultActionOnFailure": "REPAIR" } }如果您单独关闭了自动修复功能,但想重新开启该功能,请使用如下所示的 Beta 版 API 方法: - 对于可用区级 MIG,请使用 beta.instanceGroupManagers.patch方法。
- 对于区域级 MIG,请使用 beta.regionInstanceGroupManagers.patch方法。
 PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "instanceLifecyclePolicy": { "onFailedHealthCheck": "DEFAULT_ACTIONORREPAIR" } }替换以下内容: - PROJECT_ID:您的项目 ID。
- ZONE:您的 MIG 所在的可用区。 对于区域级 MIG,请在网址中使用- regions/REGION。
- MIG_NAME:MIG 的名称。
- DEFAULT_ACTIONOR- REPAIR:如果您希望自动修复使用与修复发生故障的虚拟机相同的设置,请将该值设置为- DEFAULT_ACTION。例如,当您关闭修复发生故障的虚拟机的功能时,MIG 也会关闭自动修复功能。如果您想单独配置自动修复,请将该值设置为- REPAIR。
 后续步骤- 检查 MIG 中是否停用了修复功能。
- 通过列出实例错误来调查失败的虚拟机中的错误。
- 检查虚拟机的运行状况。
 如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。 最后更新时间 (UTC):2025-10-29。 -