7.11. 控制虚拟机状态
您可从 web 控制台来停止、启动和重启虚拟机。
您可使用 virtctl 管理虚拟机状态并从 CLI 执行其他操作。例如,您可以使用 virtctl 来强制停止虚拟机或公开端口。
7.11.1. 使用 Web 控制台配置用于管理虚拟机状态的 RBAC 权限 复制链接链接已复制到粘贴板!
要允许用户使用 OpenShift Container Platform web 控制台管理虚拟机(VM)状态,您必须创建一个 RBAC 集群角色和集群角色绑定。集群角色使用 subresources.kubevirt.io API 来定义哪些资源可由某些用户或组控制。
先决条件
- 具有集群管理员对安装 OpenShift Virtualization 的 OpenShift Container Platform 集群的访问权限。
-
已安装 OpenShift CLI(
oc)。
流程
创建允许目标用户或组管理虚拟机状态的
ClusterRole对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令以应用集群角色:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并确认集群角色已创建好,并观察其输出:
oc get clusterrole <name>
$ oc get clusterrole <name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
NAME AGE vm-manager-access 15s
NAME AGE vm-manager-access 15sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查集群角色的详情,并确保存在
subresources.kubevirt.io的预期规则,特别是virtualmachines/start和virtualmachines/stop子资源。运行以下命令并观察输出:
oc describe clusterrole <name>
$ oc describe clusterrole <name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ClusterRoleBinding对象来将您创建的集群角色绑定到目标用户或组:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令以应用集群角色绑定:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并观察输出,确认已创建了集群角色绑定:
oc get clusterrolebinding <name>
$ oc get clusterrolebinding <name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
NAME AGE vm-manager-access-binding 15s
NAME AGE vm-manager-access-binding 15sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,检查用户是否可以启动虚拟机:
oc auth can-i update virtualmachines/start --namespace=<namespace> --as=<user_name> --subresource=subresources.kubevirt.io
$ oc auth can-i update virtualmachines/start --namespace=<namespace> --as=<user_name> --subresource=subresources.kubevirt.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
yes
yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查用户是否可以停止虚拟机:
oc auth can-i update virtualmachines/stop --namespace=<namespace> --as=<user_name> --group=subresources.kubevirt.io
$ oc auth can-i update virtualmachines/stop --namespace=<namespace> --as=<user_name> --group=subresources.kubevirt.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
yes
yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.2. 启动虚拟机 复制链接链接已复制到粘贴板!
您可从 web 控制台启动虚拟机。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 找到包含要启动的虚拟机的行。
导航到适合您的用例的菜单:
要保留此页面(您可以在其中对多个虚拟机执行操作):
-
点击行右末尾的 Options 菜单
并点 Start VirtualMachine。
-
点击行右末尾的 Options 菜单
在启动虚拟机前,要查看有关所选虚拟机的综合信息:
- 点虚拟机名称访问 VirtualMachine 详情页面。
-
点 Actions
Start。
首次启动从 URL 源置备的虚拟机时,当 OpenShift Virtualization 从 URL 端点导入容器时,虚拟机将处于 Importing 状态。根据镜像大小,该过程可能需要几分钟时间。
7.11.3. 停止虚拟机 复制链接链接已复制到粘贴板!
您可从 web 控制台停止虚拟机。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 找到包含您要停止的虚拟机的行。
导航到适合您的用例的菜单:
要保留此页面(您可以在其中对多个虚拟机执行操作):
-
点击位于行右边的 Options 菜单
,然后点 Stop VirtualMachine。
-
点击位于行右边的 Options 菜单
在停止之前,查看所选虚拟机的综合信息:
- 点虚拟机名称访问 VirtualMachine 详情页面。
-
点 Actions
Stop。
7.11.4. 重启虚拟机 复制链接链接已复制到粘贴板!
您可从 web 控制台重启正在运行的虚拟机。
为了避免错误,不要重启状态为 Importing 的虚拟机。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 找到包含要启动的虚拟机的行。
导航到适合您的用例的菜单:
要保留此页面(您可以在其中对多个虚拟机执行操作):
-
点击位于行右边的 Options 菜单
并点 重启。
-
点击位于行右边的 Options 菜单
要在重启前查看有关所选虚拟机的综合信息:
- 点虚拟机名称访问 VirtualMachine 详情页面。
-
点 Actions
Restart。
7.11.5. 暂停虚拟机 复制链接链接已复制到粘贴板!
您可从 web 控制台暂停虚拟机。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 找到包含您要暂停的虚拟机的行。
导航到适合您的用例的菜单:
要保留此页面(您可以在其中对多个虚拟机执行操作):
-
点击位于行右边的 Options 菜单
,然后点 暂停 VirtualMachine。
-
点击位于行右边的 Options 菜单
在暂停前,要查看有关所选虚拟机的综合信息:
- 点虚拟机名称访问 VirtualMachine 详情页面。
-
点 Actions
Pause。
7.11.6. 取消暂停虚拟机 复制链接链接已复制到粘贴板!
您可从 web 控制台取消暂停一个正暂停的虚拟机。
先决条件
- 至少一个虚拟机的状态是 Paused。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 找到包含您要取消暂停的虚拟机的行。
导航到适合您的用例的菜单:
要保留此页面(您可以在其中对多个虚拟机执行操作):
-
点击行右末尾的 Options 菜单
,然后点 Unpause VirtualMachine。
-
点击行右末尾的 Options 菜单
要在取消暂停之前查看所选虚拟机的综合信息:
- 点虚拟机名称访问 VirtualMachine 详情页面。
-
点 Actions
Unpause。