查看虚拟机上扩展程序的详细信息和状态

使用只读扩展程序状态 list 和 get 方法,无需连接到每台机器,即可查看每个虚拟机实例上已安装扩展程序的运行时状态。使用扩展程序政策时,一个虚拟机可能会安装由不同政策安装的多个扩展程序。 借助扩展程序状态方法,您可以查看每个已安装扩展程序的最终有效配置和管理政策,并帮助您在实例上安装了意外扩展程序或扩展程序失败时进行问题排查。

关于扩展程序详细信息和状态信息

您可以通过在组织、文件夹或项目级层创建全局或可用区级扩展程序政策,在虚拟机上安装虚拟机扩展程序。单个政策可以在单个虚拟机上安装多个扩展程序,并且资源层次结构中的多个政策可以应用于同一虚拟机。

通过只读扩展程序状态方法,您可以列出虚拟机上所有扩展程序的状态,以查看每个已安装扩展程序的最终有效配置和运行时状态。返回的信息会显示每个扩展程序的有效版本、强制执行状态、运行状况以及管理政策的标识符。

查看虚拟机扩展程序和版本

您可以使用 Google Cloud CLI 或 Compute Engine API 查看已安装的虚拟机扩展程序的详细信息。本文档介绍了如何使用 gcloud。如需了解如何使用 Compute Engine API 查看扩展程序状态,请参阅查看实例上的 MV 扩展程序状态。

查看扩展程序详情所需的 IAM 权限

如需查看在项目、文件夹或组织级层查看已安装扩展程序及其版本信息所需的角色,请选择以下某个级层:

项目

如需获得在项目级层查看可用区级或全球级虚拟机扩展政策所需的权限,请让管理员向您授予项目的 Compute 虚拟机扩展政策查看者 (roles/compute.vmExtensionPolicyViewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色包含在项目级层查看可用区级或全球级虚拟机扩展程序政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需在项目级查看可用区级或全局虚拟机扩展程序政策,您需要拥有以下权限:

  • 描述实例上的特定虚拟机扩展程序:compute.vmExtensions.get
  • 列出实例上的所有虚拟机扩展程序: compute.vmExtensions.list

您也可以使用自定义角色或其他预定义角色来获取这些权限。

文件夹

文件夹级扩展程序政策目前处于预览版阶段。

如需获得在文件夹级层查看可用区级或全球虚拟机扩展政策所需的权限,请让管理员向您授予文件夹的 Folder level Compute VM extension policies viewer (roles/compute.folderVmExtensionPolicyViewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色可提供在文件夹级查看可用区级或全局虚拟机扩展程序政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需在文件夹级查看可用区级或全局虚拟机扩展程序政策,您需要具备以下权限:

  • 描述实例上的特定虚拟机扩展程序:compute.folderVmExtensions.get
  • 列出实例上的所有虚拟机扩展程序: compute.folderVmExtensions.list

您也可以使用自定义角色或其他预定义角色来获取这些权限。

组织

组织级扩展程序政策目前处于预览版阶段。

如需获得在组织级层查看可用区级或全球级虚拟机扩展程序政策所需的权限,请让您的管理员为您授予组织的组织级 Compute 虚拟机扩展程序政策查看者 (roles/compute.orgVmExtensionPolicyViewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色可提供在组织级层查看可用区级或全局虚拟机扩展程序政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

在组织级层查看可用区级或全局虚拟机扩展程序政策需要以下权限:

  • 描述实例上的特定虚拟机扩展程序:compute.orgVmExtensions.get
  • 列出实例上的所有虚拟机扩展程序: compute.orgVmExtensions.list

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解 Compute Engine 中的 IAM 角色和权限,请参阅 Compute Engine 角色和权限。

列出虚拟机扩展程序和版本

如需列出项目、文件夹或组织中由虚拟机扩展程序管理器跨可用区或在全球范围内管理的虚拟机扩展程序和版本,请选择以下选项之一:

可用区级

使用 gcloud preview compute zone-vm-extension-policies extensions list 命令列出项目、文件夹或组织中某个可用区内的虚拟机扩展程序:

项目级

gcloud preview compute zone-vm-extension-policies extensions list \
  --project=PROJECT_ID \
  --zone=ZONE

替换命令中的以下变量:

  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。
文件夹和组织级层

如需在文件夹或组织级层执行上述任务,请使用相同的命令,并进行以下更改之一:

  • 对于文件夹级信息,请将 --project=PROJECT_ID 选项替换为 --folder=folders/FOLDER_ID,其中 FOLDER_ID 是文件夹的数字 ID。
  • 对于组织级信息,请将 --project=PROJECT_ID 选项替换为 --organization=organizations/ORGANIZATION_ID,其中 ORGANIZATION_ID 是组织的数字 ID。

全球

使用 gcloud preview compute global-vm-extension-policies extensions list 命令列出项目、文件夹或组织中所有可用区内的虚拟机扩展程序:

项目级

gcloud preview compute global-vm-extension-policies extensions list \
  --project=PROJECT_ID

替换命令中的以下变量:

  • PROJECT_ID:项目的标识符。
文件夹和组织级层

如需在文件夹或组织级层执行上述任务,请使用相同的命令,并进行以下更改之一:

  • 对于文件夹级信息,请将 --project=PROJECT_ID 选项替换为 --folder=folders/FOLDER_ID,其中 FOLDER_ID 是文件夹的数字 ID。
  • 对于组织级信息,请将 --project=PROJECT_ID 选项替换为 --organization=organizations/ORGANIZATION_ID,其中 ORGANIZATION_ID 是组织的数字 ID。

查看特定虚拟机扩展程序的相关信息

如需查看项目、文件夹或组织中单个可用区或全球范围内的特定虚拟机扩展程序的详细信息,请选择以下选项之一:

可用区级

使用 gcloud preview compute zone-vm-extension-policies extensions describe 命令可查看项目、文件夹或组织内某个可用区中特定虚拟机扩展程序的详细信息:

项目级

gcloud preview compute zone-vm-extension-policies extensions describe EXTENSION_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

替换命令中的以下变量:

  • EXTENSION_NAME:虚拟机扩展程序管理器支持的扩展程序之一,例如 ops-agent。
  • PROJECT_ID:项目的标识符。
  • ZONE:目标可用区,例如 us-central1-f。
文件夹和组织级层

如需在文件夹或组织级层执行上述任务,请使用相同的命令,并进行以下更改之一:

  • 对于文件夹级信息,请将 --project=PROJECT_ID 选项替换为 --folder=folders/FOLDER_ID,其中 FOLDER_ID 是文件夹的数字 ID。
  • 对于组织级信息,请将 --project=PROJECT_ID 选项替换为 --organization=organizations/ORGANIZATION_ID,其中 ORGANIZATION_ID 是组织的数字 ID。

全球

使用 gcloud preview compute global-vm-extension-policies extensions describe 命令可查看项目、文件夹或组织内所有可用区中特定虚拟机扩展程序的详细信息:

项目级

gcloud preview compute global-vm-extension-policies extensions describe EXTENSION_NAME \
  --project=PROJECT_ID

替换命令中的以下变量:

  • EXTENSION_NAME:虚拟机扩展程序管理器支持的扩展程序之一,例如 ops-agent。
  • PROJECT_ID:项目的标识符。
文件夹和组织级层

如需在文件夹或组织级层执行上述任务,请使用相同的命令,并进行以下更改之一:

  • 对于文件夹级信息,请将 --project=PROJECT_ID 选项替换为 --folder=folders/FOLDER_ID,其中 FOLDER_ID 是文件夹的数字 ID。
  • 对于组织级信息,请将 --project=PROJECT_ID 选项替换为 --organization=organizations/ORGANIZATION_ID,其中 ORGANIZATION_ID 是组织的数字 ID。

查看实例上的虚拟机扩展程序的状态

扩展程序政策可能会在单个虚拟机上安装多个扩展程序。如需确定每个扩展程序的状态(包括其有效配置、运行时状态和其他信息),您可以检查特定虚拟机上的扩展程序状态。

扩展程序状态方法仅返回有关由虚拟机扩展程序管理器政策安装和管理的 Ops Agent 实例的信息。如果某些虚拟机运行的是通过其他方式安装的代理,则这些代理没有要报告的扩展程序信息。

您可以使用 Google Cloud CLI 或 Compute Engine API 查看虚拟机上安装的扩展程序的状态。本文档介绍了如何使用 gcloud。如需了解如何使用 Compute Engine API 查看扩展程序状态,请参阅查看实例上的 MV 扩展程序状态。

查看扩展程序状态所需的 IAM 权限

如需获得查看实例上的虚拟机扩展程序状态所需的权限,请让管理员向您授予项目的 Compute Viewer (roles/compute.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色可提供查看实例上的虚拟机扩展程序状态所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

查看实例上的虚拟机扩展程序状态需要以下权限:

  • 列出实例上所有虚拟机扩展程序的状态: compute.instances.listVmExtensionStates
  • 获取实例上特定虚拟机扩展程序的状态:compute.instances.getVmExtensionState

您也可以使用自定义角色或其他预定义角色来获取这些权限。

列出虚拟机实例上安装的扩展程序

如需使用 gcloud 列出实例上安装的所有虚拟机扩展程序并查看其当前状态,请运行 gcloud beta compute instances list-vm-extension-states 命令:

gcloud beta compute instances list-vm-extension-states INSTANCE_NAME \
    --project=PROJECT_ID \
    --zone=ZONE

替换命令中的以下变量:

  • INSTANCE_NAME:虚拟机实例的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:实例所在的可用区,例如 us-central1-f。

该命令会返回每个已安装扩展程序的名称、强制执行状态和健康状态。如需了解查看扩展程序状态时返回的值,请参阅解读虚拟机扩展程序状态字段。

如需详细了解如何查看虚拟机上扩展程序的状态信息(包括如何使用 Compute Engine API),请参阅查看实例上的虚拟机扩展程序状态。

查看实例上特定虚拟机扩展程序的状态

如需使用 gcloud 获取虚拟机上安装的特定虚拟机扩展程序的状态信息,请运行 gcloud beta compute instances get-vm-extension-state 命令:

gcloud beta compute instances get-vm-extension-state INSTANCE_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --extension-name=EXTENSION_NAME

替换命令中的以下变量:

  • INSTANCE_NAME:虚拟机实例的名称。
  • PROJECT_ID:项目的标识符。
  • ZONE:实例所在的可用区,例如 us-central1-f。
  • EXTENSION_NAME:虚拟机扩展程序管理器支持的扩展程序之一,例如 ops-agent。

该命令会返回扩展程序的名称、有效版本、运行状况信息、违规处置信息以及管理政策的 ID。 如需了解查看扩展程序状态时返回的值,请参阅解读虚拟机扩展程序状态字段。

如需详细了解如何查看虚拟机上扩展程序的状态信息(包括如何使用 Compute Engine API),请参阅查看实例上的虚拟机扩展程序状态。

后续步骤