9.11. 控制虚拟机状态


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

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

要允许用户使用 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

9.11.2. 启用对虚拟机操作的确认

如果启用了确认,则 StopRestartPause 操作可以显示确认对话框。默认情况下禁用确认。

流程

  1. 在 OpenShift Container Platform web 控制台的 Virtualization 部分,进入到 Overview Settings Cluster General settings
  2. VirtualMachine 操作确认 设置切换到 On。

9.11.3. 启动虚拟机

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

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 在 tree 视图中,选择包含您要启动的虚拟机的项目。
  3. 导航到适合您的用例的菜单:

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

      1. 点击行右末尾的 Options 菜单 kebab 并点 Start VirtualMachine
    • 从树视图中启动虚拟机:

      1. 点项目名称旁边的 > 图标打开虚拟机列表。
      2. 右键点虚拟机的名称,然后选择 Start
    • 在启动前,要查看有关所选虚拟机的综合信息:

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

        注意

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

9.11.4. 停止虚拟机

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

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 在 tree 视图中,选择包含您要停止的虚拟机的项目。
  3. 导航到适合您的用例的菜单:

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

      1. 点击位于行右边的 Options 菜单 kebab ,然后点 Stop VirtualMachine
      2. 如果启用了操作确认,请在确认对话框中点 Stop
    • 从树视图中停止虚拟机:

      1. 点项目名称旁边的 > 图标打开虚拟机列表。
      2. 右键点虚拟机的名称,然后选择 Stop
      3. 如果启用了操作确认,请在确认对话框中点 Stop
    • 要在停止之前查看所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页。
      2. Actions Stop
      3. 如果启用了操作确认,请在确认对话框中点 Stop

9.11.5. 重启虚拟机

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

重要

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

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 在 tree 视图中,选择包含您要重启的虚拟机的项目。
  3. 导航到适合您的用例的菜单:

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

      1. 点击位于行右边的 Options 菜单 kebab 并点 重启
      2. 如果启用了操作确认,请在确认对话框中点 Restart
    • 从树视图中重启虚拟机:

      1. 点项目名称旁边的 > 图标打开虚拟机列表。
      2. 右键点虚拟机的名称,然后选择 Restart
      3. 如果启用了操作确认,请在确认对话框中点 Restart
    • 要在重启前查看有关所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页面。
      2. Actions Restart
      3. 如果启用了操作确认,请在确认对话框中点 Restart

9.11.6. 暂停虚拟机

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

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 在 tree 视图中,选择包含您要暂停的虚拟机的项目。
  3. 导航到适合您的用例的菜单:

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

      1. 点击位于行右边的 Options 菜单 kebab ,然后点 暂停 VirtualMachine
      2. 如果启用了操作确认,请在确认对话框中点 Pause
    • 从树视图中暂停虚拟机:

      1. 点项目名称旁边的 > 图标打开虚拟机列表。
      2. 右键点虚拟机的名称,然后选择 Pause
      3. 如果启用了操作确认,请在确认对话框中点 Pause
    • 要在暂停之前查看所选虚拟机的综合信息:

      1. 点虚拟机名称访问 VirtualMachine 详情页。
      2. Actions Pause
      3. 如果启用了操作确认,请在确认对话框中点 Pause

9.11.7. 取消暂停虚拟机

您可从 web 控制台取消暂停暂停的虚拟机(VM)。

先决条件

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

流程

  1. 在侧边菜单中点 Virtualization VirtualMachines
  2. 在 tree 视图中,选择包含您要取消暂停的虚拟机的项目。
  3. 导航到适合您的用例的菜单:

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

      1. 点击行右末尾的 Options 菜单 kebab ,然后点 Unpause VirtualMachine
    • 从 tree 视图中取消暂停虚拟机:

      1. 点项目名称旁边的 > 图标打开虚拟机列表。
      2. 右键点虚拟机的名称,然后选择 Unpause
    • 要在取消暂停之前查看所选虚拟机的综合信息:

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

9.11.8. 控制多个虚拟机的状态

您可从 web 控制台启动、停止、重启、暂停和取消暂停多个虚拟机。

流程

  1. 在 web 控制台中进入到 Virtualization VirtualMachines
  2. 可选:在树视图上方启用 Show only projects with VirtualMachines 选项,以限制显示的项目。
  3. 从树视图中选择相关项目。
  4. 导航到适合您的用例的菜单:

    • 更改所选项目中的所有虚拟机的状态:

      1. 右键点树视图中的项目名称,然后从菜单中选择预期操作。
      2. 如果启用了操作确认,请在确认对话框中确认操作。
    • 更改特定虚拟机的状态:

      1. 选中您要使用的虚拟机旁边的复选框。要选择所有虚拟机,请点 VirtualMachines 表标头中的复选框。
      2. Actions,然后从菜单中选择预期的操作。
      3. 如果启用了操作确认,请在确认对话框中确认操作。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat