本页面介绍如何测试虚拟机 (VM) 实例的主机维护政策对应用的影响。
在以下情况下,您可以模拟虚拟机上的维护事件:
- 您的虚拟机被配置为在维护期间进行实时迁移,并且您需要测试实时迁移对应用的影响。
- 您要在抢占式虚拟机实例上运行批处理作业,并且您需要测试应用如何处理一个或多个实例的抢占和关闭。
- 您的实例被配置为在维护期间停止并重启(而非实时迁移),并且您需要测试应用如何处理此关闭和重启过程。
- 您希望测试在主机维护事件期间在单租户节点上运行的工作负载的情况,并查看单租户虚拟机的主机维护政策对虚拟机上运行的应用的效果。
准备工作
- 查看
simulate_maintenance_event_requests
指标的 API 速率限制。 -
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
如果您尝试在不支持实时迁移的虚拟机上模拟主机维护事件,则虚拟机会被终止或重新启动,具体取决于所配置的主机维护政策。
尝试模拟节点组上主机维护政策设置为在节点组内迁移的主机维护事件时,如果指定的节点数小于或等于预留的隔离节点总数,则会同时为所有指定节点运行主机维护事件模拟。相反,如果指定的节点数大于预留隔离节点总数,则模拟将失败。
如需正确模拟节点组上主机维护政策设置为在节点组内迁移的维护事件,您需要在每个节点上按顺序触发维护事件。
- 在模拟开始时,
maintenance-event
元数据键的值会从NONE
更改为MIGRATE_ON_HOST_MAINTENANCE
。 - 在整个模拟事件的持续时间内,该值保持为
MIGRATE_ON_HOST_MAINTENANCE
。 - 模拟结束后,该值会恢复为
NONE
。 VM_NAME
:您要在其中模拟维护事件的虚拟机的名称。您可以指定由单一空格分隔的多个虚拟机名称,以模拟同一区域中多个虚拟机上的维护事件。例如
instance-1 instance-2 instance-3
。ZONE
:实例所在的区域。PROJECT_ID
:此请求的项目 ID。VM_NAME
:您要在其中模拟维护事件的实例的名称。您可以指定由单一空格分隔的多个实例名称,以模拟同一区域中多个实例上的维护事件。例如
instance-1 instance-2 instance-3
。ZONE
:实例所在的区域。NODE_GROUP
:您要在其中模拟维护事件的节点组的名称。NODE_NAMES
:您要在其中模拟维护事件的节点的名称。指定多个节点名称时,请使用以英文逗号分隔的值,例如node-1,node-2,node-3
。ZONE
:节点所在的可用区。PROJECT_ID
:此请求的项目 ID。ZONE
:节点所在的可用区。NODE_GROUP
:您要在其中模拟维护事件的节点组的名称。NODE_NAMES
:您要在其中模拟维护事件的节点的名称。将节点名称括在英文双引号中,例如"node-1"
。此外,在指定多个节点名称时,请使用以逗号分隔的值,例如"node-1","node-2","node-3"
。- 详细了解主机事件。
- 详细了解单租户节点上的主机维护。
- 详细了解如何设置虚拟机主机维护政策。
- 了解如何查看虚拟机操作。
- 详细了解虚拟机租用
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
限制
模拟主机维护事件
您可以使用 Google Cloud CLI 或 API 请求来模拟虚拟机上的维护事件。
在主机维护事件模拟期间,虚拟机的
maintenance-event
元数据键会进行以下更改:如需查询维护事件键,请参阅查询维护事件元数据键。
gcloud
运行
instances simulate-maintenance-event
命令强制实例激活为其配置的维护政策操作:gcloud compute instances simulate-maintenance-event VM_NAME \ --zone ZONE
请替换以下内容:
REST
在 Compute Engine API 中,向
compute.instances.simulateMaintenanceEvent
方法发出请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/simulateMaintenanceEvent
请替换以下内容:
模拟单租户节点上的主机维护事件
您可以使用 Google Cloud CLI 或 API 请求来模拟单租户节点上的主机维护事件。在模拟单租户虚拟机上的主机维护事件期间,
maintenance-event
元数据键值对不会更改,并且在模拟过程中保持为NONE
。gcloud
运行
sole-tenancy node-groups simulate-maintenance-event
命令以强制单租户节点激活其配置的维护政策:gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \ --nodes=NODE_NAMES \ --zone=ZONE \ --async
请替换以下内容:
REST
在 Compute Engine API 中,向
compute.nodeGroups.simulateMaintenanceEvent
方法发出请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent { "nodes": [NODE_NAMES] }
请替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。
-