本文档说明了如何在 Compute Engine 实例中查看正常关停的设置和进度。如需详细了解正常关停,请参阅正常关停概览。
查看实例的详细信息时,您可以执行以下操作:
查看正常关停设置。您可以验证是否启用了正常关停,以及正常关停持续多长时间。
监控正常关停。在进行正常关停时,您可以检查以下各项:
正常关停进程何时超时。
停止或删除操作是否正在进行。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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.
在 Google Cloud 控制台中,前往虚拟机实例页面。
在名称列中,点击您的实例的名称。
系统会在详细信息标签页中打开实例的详细信息页面。
如需检查正常关停设置,请在可用性政策部分中检查正常关停时长上限字段的值。此字段显示正常关停时段。如果显示连字符 (-),则表示已停用正常关停。
INSTANCE_NAME
:实例的名称。ZONE
:实例所在的可用区。PROJECT_ID
:您在其中创建了实例的项目的 ID。ZONE
:实例所在的可用区。INSTANCE_NAME
:实例的名称。INSTANCE_NAME
:实例的名称。ZONE
:实例所在的可用区。MAX_DURATION
:正常关停时段的持续时间(以秒为单位)。Compute Engine 将STOP_STATE
设置为STOPPING
后,会删除maxDuration
字段。REQUEST_TIMESTAMP
:STOP_STATE
开始时的时间戳。STOP_STATE
:实例的停止阶段。可以是以下值之一:PENDING_STOP
:Compute Engine 已开始正常关停。在您手动结束正常关停或正常关停时段超时之前,实例会保持此状态。STOPPING
:正常关停已结束,Compute Engine 会继续执行停止或删除操作。
TARGET_STATE
:Compute Engine 是停止 (STOPPED
) 还是删除 (DELETED
) 实例。PROJECT_ID
:您在其中创建了实例的项目的 ID。ZONE
:实例所在的可用区。INSTANCE_NAME
:实例的名称。MAX_DURATION
:正常关停时段的持续时间(以秒为单位)。Compute Engine 将STOP_STATE
设置为STOPPING
后,会删除maxDuration
字段。REQUEST_TIMESTAMP
:STOP_STATE
开始时的时间戳。STOP_STATE
:实例的停止阶段。可以是以下值之一:PENDING_STOP
:Compute Engine 已开始正常关停。在您手动结束正常关停或正常关停时段超时之前,实例会保持此状态。STOPPING
:正常关停已结束,Compute Engine 会继续执行停止或删除操作。
TARGET_STATE
:Compute Engine 是停止 (STOPPED
) 还是删除 (DELETED
) 实例。连接到实例。
查询元数据服务器:
curl "http://metadata.google.internal/computeMetadata/v1/instance/shutdown-details/?recursive=true?alt=json" \-H "Metadata-Flavor: Google"
如果正在进行正常关停,则输出类似于以下内容:
{ "maxDuration": "MAX_DURATION", "requestTimestamp": "REQUEST_TIMESTAMP", "stopState": "STOP_STATE", "targetState": "TARGET_STATE" }
输出包括以下值:
MAX_DURATION
:正常关停时段的持续时间(以秒为单位)。Compute Engine 将STOP_STATE
设置为STOPPING
后,会删除maxDuration
字段。REQUEST_TIMESTAMP
:STOP_STATE
开始时的时间戳。STOP_STATE
:实例的停止阶段。可以是以下值之一:PENDING_STOP
:Compute Engine 已开始正常关停。在您手动结束正常关停或正常关停时段超时之前,实例会保持此状态。STOPPING
:正常关停已结束,Compute Engine 会继续执行停止或删除操作。
TARGET_STATE
:Compute Engine 是停止 (STOPPED
) 还是删除 (DELETED
) 实例。
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
on the project查看正常关停设置
如需查看计算实例中的正常关停设置,请选择以下选项之一:
控制台
gcloud
如需查看实例中的正常关停设置,请使用
gcloud beta compute instances describe
命令:gcloud beta compute instances describe INSTANCE_NAME \ --zone=ZONE
替换以下内容:
如果已启用正常关停,则输出类似于以下内容:
... scheduling: ... gracefulShutdown: enabled: true maxDuration: seconds: 'MAX_DURATION' ... ...
输出包含
MAX_DURATION
值。此值表示正常关停时段的持续时间(以秒为单位)。如果您在实例中启用正常关停时未指定自定义关停时段,Compute Engine 会省略maxDuration
字段并将正常关停时段设置为 10 分钟。REST
如需查看实例中的正常关停设置,请向 Beta 版
instances.get
方法发出GET
请求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
替换以下内容:
如果已启用正常关停,则输出类似于以下内容:
{ ... "scheduling": { ... "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } }, ... }
输出包含
MAX_DURATION
值。此值表示正常关停时段的持续时间(以秒为单位)。如果您在实例中启用正常关停时未指定自定义关停时段,Compute Engine 会省略maxDuration
字段并将正常关停时段设置为 10 分钟。监控正常关停
如需监控计算实例中正在进行的正常关停,请选择以下选项之一:
控制台
gcloud
如需监控实例中正在进行的正常关停,请使用
gcloud beta compute instances describe
命令:gcloud beta compute instances describe INSTANCE_NAME \ --zone=ZONE
替换以下内容:
如果正在进行正常关停,则输出类似于以下内容:
... resourceStatus: ... shutdownDetails: maxDuration: seconds: 'MAX_DURATION' requestTimestamp: 'REQUEST_TIMESTAMP' stopState: STOP_STATE targetState: TARGET_STATE ... status: PENDING_STOP ...
此输出包括以下值:
如果正在运行停止操作,则 Compute Engine 将
status
字段设置为TERMINATE
后,会删除shutdownDetails
字段。REST
如需监控实例中正在进行的正常关停,请向 Beta 版
instances.get
方法发出GET
请求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
替换以下内容:
如果正在进行正常关停,则输出类似于以下内容:
{ ... "resourceStatus": { ... "shutdownDetails": { "maxDuration": { "seconds": "MAX_DURATION" }, "requestTimestamp": "REQUEST_TIMESTAMP", "stopState": "STOP_STATE", "targetState": "TARGET_STATE" } }, ... "status": "PENDING_STOP", ... }
此输出包括以下值:
如果正在运行停止操作,则 Compute Engine 将
status
字段设置为TERMINATE
后,会删除shutdownDetails
字段。元数据服务器
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-03-04。
-