虚拟机实例在其生命周期中可在多个状态之间转换。创建虚拟机时,Google Distributed Cloud (GDC) 气隙设备会预配资源以启动虚拟机。接下来,虚拟机进入启动状态,准备进行首次启动。在启动期间和启动后,我们将虚拟机视为正在运行。正在运行的虚拟机可以在其生命周期内反复停止和重启,也可以反复暂停和恢复。
虚拟机状态定义
州 | 定义 |
---|---|
Pending |
虚拟机已被系统接受,正在等待分配。 |
Provisioning
|
与虚拟机关联的资源(例如 VirtualMachineDisk )正在进行预配和准备。 |
Starting |
正在准备运行虚拟机。 |
Running |
虚拟机正在运行。 |
Stopping |
虚拟机正在停止。 |
Stopped |
虚拟机已停止,且预计不会启动。 |
Paused
|
虚拟机已暂停并处于冻结状态,该状态会保留。无法访问虚拟机。 |
Terminating
|
虚拟机及其关联资源正在进行删除流程。 |
ErrorConfiguration
|
虚拟机存在配置错误。无效的配置状态可能由以下原因导致: |
MachineTypeNotFound - 找不到虚拟机所引用的虚拟机类型,或者该类型正在被删除。 |
|
MachineDiskMisconfig - 虚拟机磁盘配置有误。 |
|
InterfaceCreationFailed - 网络接口创建失败。 |
|
CrashLoopBackOff |
虚拟机目前处于崩溃循环中,正在等待重试。 |
PendingIPAllocation |
虚拟机正在等待系统为其分配 IP 地址。 |
Unknown
|
无法获取虚拟机状态,通常是因为与运行虚拟机的宿主主机通信时出现错误。 |
ErrorUnschedulable
|
在调度虚拟机时发生错误,例如,由于资源请求或调度限制无法满足或不受支持。 |
DiskError |
虚拟机的一个或多个已挂接磁盘存在错误。 |
WaitingForDisk |
虚拟机正在等待一个或多个已连接的 VirtualMachineDisk 准备就绪。 |
CrashLoopBackoff |
虚拟机因某种原因而持续崩溃。 |
准备工作
如需使用 gdcloud
命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud
CLI。GDC 隔网设备的全部命令都使用 gdcloud
或 kubectl
CLI,并且需要操作系统 (OS) 环境。
获取 kubeconfig 文件路径
如需针对管理 API 服务器运行命令,请确保您拥有以下资源:
找到管理 API 服务器名称,或向平台管理员 (PA) 询问服务器名称。
登录并生成管理 API 服务器的 kubeconfig 文件(如果您还没有)。
使用该路径替换这些说明中的
MANAGEMENT_API_SERVER{"</var>"}}
。
请求权限和访问权限
如需执行本页面中列出的任务,您必须具有 Project VirtualMachine Admin 角色。按照相应步骤验证或让项目 IAM 管理员在虚拟机所在项目的命名空间中分配项目 VirtualMachine 管理员 (project-vm-admin
) 角色。
对于使用 GDC 控制台或 gdcloud CLI 的虚拟机操作,请让您的项目 IAM 管理员为您分配“Project VirtualMachine Admin”角色和“Project Viewer”角色 (project-viewer
)。
检查虚拟机状态
每个虚拟机都会以虚拟机属性的形式报告其状态。检查虚拟机的状态,原因如下:
- 如果虚拟机存在问题。
- 确认虚拟机在启动后是否正在运行。
- 验证虚拟机是否处于
Paused
或Stopped
状态。
列出虚拟机以检查状态
以下过程展示了如何列出虚拟机、查看其状态并获取其他状态信息。
列出所有虚拟机并查看每个虚拟机的状态:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachines.virtualmachine.gdc.goog -n PROJECT
根据下表,将代码示例中的变量替换为您自己的值。
变量 定义 MANAGEMENT_API_SERVER
管理 API 服务器 kubeconfig
文件。PROJECT
虚拟机所在的 GDC 项目。 输出示例:
NAME STATUS AGE vm-1 Running 1d vm-2 Stopped 8d vm-3 ErrorConfiguration 1d
获取有关特定虚拟机状态的更多详细信息:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT -o \ jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'
替换以下内容:
- 将
MANAGEMENT_API_SERVER
替换为从gdcloud auth login
命令获得的 Management API 服务器的kubeconfig
文件。 - 将
VM_NAME
替换为新虚拟机的名称。 PROJECT
替换为虚拟机所在的 GDC 项目。
显示
Reason
和Message
值的示例输出:State: ErrorConfiguration Reason: MachineDiskNotFound Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.
您可能还会看到
Reason
和Message
的字段为空。这表示系统没有关于这些方面的报告。Reason
和Message
为空的输出示例:State: Running Reason: Message:
- 将
停止或重启虚拟机
在虚拟机生命周期内,您可能需要停止并重启虚拟机,或者删除虚拟机,以应对状态变化或常规管理虚拟机。如需停止、重置或删除虚拟机,请参阅以下页面: