本页面介绍了如何在受支持的 Compute Engine 实例上手动启动主机维护事件。此功能使您可以启动维护事件以控制实例的维护时间。这对于可能受性能下降或停机时间影响的工作负载非常有用,您需要在特定时间开始维护窗口。
当您手动启动维护事件时,主机维护会立即开始。您无法为维护事件指定开始日期或时间。如果您不使用此功能,则维护事件会在即将进行的维护通知中指明的时间发生。
如果您想先测试应用如何处理维护事件,可以模拟维护事件。
限制
您可以为使用以下机器类型的实例手动启动主机维护事件:
加速器优化机器家族:
计算优化机器家族:
通用机器家族:
内存优化机器家族:
存储优化机器家族:
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
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.
-
获取计算实例的相关信息:
compute.instances.get
INSTANCE_NAME
:计算实例的名称。ZONE
:实例所在的可用区。PROJECT_NAME
:项目的名称ZONE
:计算实例所在的可用区INSTANCE_NAME
:实例的名称- 了解如何模拟主机维护事件。
- 了解如何获取实时迁移通知。
- 了解如何为主机维护通知配置提醒。
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 时进行身份验证。
所需的角色
如需获得管理虚拟机维护所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含管理虚拟机维护所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
管理虚拟机维护需要以下权限:
手动启动主机维护事件
Compute Engine 会通过多种方法针对即将进行的维护事件发送通知。您可以根据通知中的信息确定可以手动启动维护事件的时间范围。
查看通知信息
您可以通过以下任一方式查找维护事件通知:
如果有关主机维护事件的通知包含
canReschedule=True
和maintenanceStatus=Pending
,那么您可以选择在您选择的时间开始维护,也可以等待在windowStartTime
指定的时间开始维护事件。如果没有通知,并且您尝试手动启动维护事件,则会显示以下消息:
There is no reschedulable upcoming maintenance.
此消息表示未安排维护事件,无需执行任何操作。
启动维护事件
您可以自行选择主机维护的开始时间,而无需等到预定时间。使用 Google Cloud CLI 或 REST 触发维护事件,该事件会立即开始。
gcloud
如需启动维护事件,请使用
compute instances perform-maintenance
命令。输入命令后,主机维护会立即开始。gcloud compute instances perform-maintenance INSTANCE_NAME \ --zone=ZONE
替换以下内容:
响应类似于以下示例:
resourceStatus: upcomingMaintenance: canReschedule: false latestWindowStartTime: '2025-01-15T19:57:17Z' maintenanceStatus: ONGOING type: SCHEDULED windowEndTime: '2025-01-15T23:57:11Z' windowStartTime: '2025-01-15T19:57:16Z'
在响应中,
canReschedule
设置为false
,maintenanceStatus
设置为ONGOING
,这表示主机维护操作正在进行中。REST
如需启动维护事件,请使用
instances.performMaintenance
方法构建POST
请求。POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
替换以下内容:
响应如下所示:
upcomingMaintenance:{ "canReschedule":false "latestWindowStartTime": "2023-12-01T19:00:01Z" "maintenanceStatus":"ONGOING" "type":"SCHEDULED" "windowEndTime": "2023-12-01T22:00:00Z" "windowStartTime": "2023-12-01T19:00:00Z" }
在响应中,
canReschedule
设置为false
,maintenanceStatus
设置为ONGOING
,这表示主机维护操作正在进行中。后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-25。
-