7.11. 控制虚拟机状态


您可从 web 控制台来停止、启动和重启虚拟机。

您可使用 virtctl 管理虚拟机状态并从 CLI 执行其他操作。例如,您可以使用 virtctl 来强制停止虚拟机或公开端口。

要允许用户使用 OpenShift Container Platform web 控制台管理虚拟机(VM)状态,您必须创建一个 RBAC 集群角色和集群角色绑定。集群角色使用 subresources.kubevirt.io API 来定义哪些资源可由某些用户或组控制。

先决条件

  • 具有集群管理员对安装 OpenShift Virtualization 的 OpenShift Container Platform 集群的访问权限。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 创建允许目标用户或组管理虚拟机状态的 ClusterRole 对象:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: vm-manager-access
    rules:
      - apiGroups:
          - subresources.kubevirt.io
        resources:
          - virtualmachines/start
          - virtualmachines/stop
        verbs:
          - put
    # ...
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令以应用集群角色:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令并确认集群角色已创建好,并观察其输出:

    $ oc get clusterrole <name>
    Copy to Clipboard Toggle word wrap

    输出示例:

    NAME                AGE
    vm-manager-access   15s
    Copy to Clipboard Toggle word wrap
  4. 检查集群角色的详情,并确保存在 subresources.kubevirt.io 的预期规则,特别是 virtualmachines/startvirtualmachines/stop 子资源。

    运行以下命令并观察输出:

    $ oc describe clusterrole <name>
    Copy to Clipboard Toggle word wrap

    输出示例:

    Name:         vm-manager-access
    Labels:       <none>
    Annotations:  <none>
    PolicyRule:
      Resources  Non-Resource URLs  Resource Names  Verbs
      ---------  -----------------  --------------  -----
      virtualmachines/start, virtualmachines/stop with subresources.kubevirt.io group  []  []  [put]
    Copy to Clipboard Toggle word wrap
  5. 创建 ClusterRoleBinding 对象来将您创建的集群角色绑定到目标用户或组:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: vm-manager-access-binding
    subjects:
      - kind: User
        name: test-user
        apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: vm-manager-access
      apiGroup: rbac.authorization.k8s.io
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令以应用集群角色绑定:

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令并观察输出,确认已创建了集群角色绑定:

    $ oc get clusterrolebinding <name>
    Copy to Clipboard Toggle word wrap

    输出示例:

    NAME                        AGE
    vm-manager-access-binding   15s
    Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令,检查用户是否可以启动虚拟机:

    $ oc auth can-i update virtualmachines/start --namespace=<namespace> --as=<user_name> --subresource=subresources.kubevirt.io
    Copy to Clipboard Toggle word wrap

    输出示例:

    yes
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,检查用户是否可以停止虚拟机:

    $ oc auth can-i update virtualmachines/stop --namespace=<namespace> --as=<user_name> --group=subresources.kubevirt.io
    Copy to Clipboard Toggle word wrap

    输出示例:

    yes
    Copy to Clipboard Toggle word wrap

7.11.2. 启动虚拟机

您可从 web 控制台启动虚拟机。

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 找到包含要启动的虚拟机的行。
  3. 导航到适合您的用例的菜单:

    • 要保留此页面(您可以在其中对多个虚拟机执行操作):

      1. 点击行右末尾的 Options 菜单 kebab 并点 Start VirtualMachine
    • 在启动虚拟机前,要查看有关所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Start
注意

首次启动从 URL 源置备的虚拟机时,当 OpenShift Virtualization 从 URL 端点导入容器时,虚拟机将处于 Importing 状态。根据镜像大小,该过程可能需要几分钟时间。

7.11.3. 停止虚拟机

您可从 web 控制台停止虚拟机。

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 找到包含您要停止的虚拟机的行。
  3. 导航到适合您的用例的菜单:

    • 要保留此页面(您可以在其中对多个虚拟机执行操作):

      1. 点击位于行右边的 Options 菜单 kebab ,然后点 Stop VirtualMachine
    • 在停止之前,查看所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Stop

7.11.4. 重启虚拟机

您可从 web 控制台重启正在运行的虚拟机。

重要

为了避免错误,不要重启状态为 Importing 的虚拟机。

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 找到包含要启动的虚拟机的行。
  3. 导航到适合您的用例的菜单:

    • 要保留此页面(您可以在其中对多个虚拟机执行操作):

      1. 点击位于行右边的 Options 菜单 kebab 并点 重启
    • 要在重启前查看有关所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Restart

7.11.5. 暂停虚拟机

您可从 web 控制台暂停虚拟机。

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 找到包含您要暂停的虚拟机的行。
  3. 导航到适合您的用例的菜单:

    • 要保留此页面(您可以在其中对多个虚拟机执行操作):

      1. 点击位于行右边的 Options 菜单 kebab ,然后点 暂停 VirtualMachine
    • 在暂停前,要查看有关所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Pause

7.11.6. 取消暂停虚拟机

您可从 web 控制台取消暂停一个正暂停的虚拟机。

先决条件

  • 至少一个虚拟机的状态是 Paused

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 找到包含您要取消暂停的虚拟机的行。
  3. 导航到适合您的用例的菜单:

    • 要保留此页面(您可以在其中对多个虚拟机执行操作):

      1. 点击行右末尾的 Options 菜单 kebab ,然后点 Unpause VirtualMachine
    • 要在取消暂停之前查看所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Unpause
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat