本页面介绍了如何在受支持的 Compute Engine 实例上手动启动主机维护事件。此功能使您可以启动维护事件以控制实例的维护时间。这对于可能受性能下降或停机时间影响的工作负载非常有用,您需要在特定时间开始维护窗口。
当您手动启动维护事件时,主机维护会立即开始。您无法为维护事件指定开始日期或时间。如果您不使用此功能,则维护事件会在即将进行的维护通知中指明的时间发生。
如果您想先测试应用如何处理维护事件,可以模拟维护事件。
限制
您可以为使用以下机器类型的实例手动启动主机维护事件:
加速器优化机器家族:
计算优化机器家族:
通用机器家族:
内存优化机器家族:
存储优化机器家族:
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是验证您的身份以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得管理虚拟机维护所需的权限,请让管理员向您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含管理虚拟机维护所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
管理虚拟机维护需要以下权限:
-
获取计算实例的相关信息:
compute.instances.get
手动启动主机维护事件
Compute Engine 会通过多种方法针对即将进行的维护事件发送通知。您可以根据通知中的信息确定可以手动启动维护事件的时间范围。
查看通知信息
您可以通过以下方式查找维护事件通知:
如果有关主机维护事件的通知包含 canReschedule=True
和 maintenanceStatus=Pending
,则您可以选择在您选择的时间开始维护,也可以等待在 windowStartTime
指定的时间开始维护事件。
如果没有通知,并且您尝试手动启动维护事件,则会显示以下消息:
There is no reschedulable upcoming maintenance.
这表示未安排维护事件,无需执行任何操作。
启动维护事件
您可以自行选择主机维护的开始时间,而无需等到预定时间。使用 Google Cloud CLI 或 REST 触发维护事件,该事件会立即开始。
如需启动维护事件,请使用 compute instances perform-maintenance
命令。输入命令后,主机维护会立即开始。
gcloud compute instances perform-maintenanceINSTANCE_NAME \ --zone=ZONE
替换以下内容:
INSTANCE_NAME
:计算实例的名称。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
,这表示主机维护操作正在进行中。
如需启动维护事件,请使用 instances.performMaintenance
方法构建 POST
请求。
POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME /zones/ZONE /instances/INSTANCE_NAME /performMaintenance
替换以下内容:
PROJECT_NAME
:项目的名称ZONE
:计算实例所在的可用区INSTANCE_NAME
:实例的名称
响应如下所示:
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
,这表示主机维护操作正在进行中。
后续步骤
- 了解如何模拟主机维护事件。
- 了解如何获取实时迁移通知。
- 了解如何为主机维护通知配置提醒。