Menu Close

7.7. 访问虚拟机控制台

OpenShift Virtualization 提供不同的虚拟机控制台,您可使用这些控制台来完成不同的产品任务。您可通过 web 控制台并使用 CLI 命令来访问这些控制台。

7.7.1. 虚拟机控制台会话

您可从 web 控制台上 Virtual Machine Details 屏幕中的 Consoles 选项卡连接至正在运行的虚拟机的 VNC 控制台和串行控制台。

有两个控制台可用:图形 VNC ConsoleSerial Console。每次导航到 Consoles 选项卡时会默认打开 VNC Console。您可使用 VNC Console Serial Console 列表来切换这两种控制台。

控制台会话将在后台保持活跃,除非断开连接。当 Disconnect before switching 复选框活跃且您切换了控制台时,当前控制台会话将断开连接,与选定控制台的新会话将连接至虚拟机。这样可保证一次仅打开一个控制台会话。

VNC Console 的选项

Send Key 按钮列出了要发送至虚拟机的密钥组合。

Serial Console 的选项

使用 Disconnect 按钮可手动断开 Serial Console 会话与虚拟机的连接。
使用 Reconnect 按钮可手动打开 Serial Console 会话与虚拟机的连接。

7.7.2. 使用 web 控制台连接至虚拟机

7.7.2.1. 连接至终端

您可使用 web 控制台连接至虚拟机。

流程

  1. 确定您处于正确的项目中。如果不是,则点击 Project 列表,然后选择适当项目。
  2. 从侧边菜单中点 WorkloadsVirtualization
  3. Virtual Machines 标签页。
  4. 选择虚拟机以打开 Virtual Machine Overview 屏幕。
  5. 进入 Details 选项卡中,点击 virt-launcher-<vm-name> Pod。
  6. 点击 Terminal 选项卡。如果终端空白,则选择终端,然后按任意键启动连接。

7.7.2.2. 连接至串行控制台

从 web 控制台上 Virtual Machine Details 屏幕中的 Consoles 选项卡连接至正在运行的虚拟机的 Serial Console

流程

  1. 在 OpenShift Virtualization 控制台中,从侧边菜单中点击 WorkloadsVirtualization
  2. Virtual Machines 标签页。
  3. 选择虚拟机以打开 Virtual Machine Overview 屏幕。
  4. 点击 Console。默认会打开 VNC 控制台。
  5. 点击 VNC Console 下拉菜单并选择 Serial Console

7.7.2.3. 连接至 VNC 控制台

通过 web 控制台中的 Virtual Machine Overview 界面中的 Console 标签页连接到运行虚拟机的 VNC 控制台。

流程

  1. 在 OpenShift Virtualization 控制台中,从侧边菜单中点击 WorkloadsVirtualization
  2. Virtual Machines 标签页。
  3. 选择虚拟机以打开 Virtual Machine Overview 屏幕。
  4. 点击 Console 选项卡。默认会打开 VNC 控制台。

7.7.2.4. 连接至 RDP 控制台

桌面查看器控制台利用远程桌面协议 (RDP),为连接至 Windows 虚拟机提供更好的控制台体验。

要使用 RDP 连接至 Windows 虚拟机,请从 web 控制台上 Virtual Machine Details 屏幕中的 Consoles 选项卡下载虚拟机的 console.rdp 文件,并将其提供给您首选的 RDP 客户端。

先决条件

  • 正在运行的 Windows 虚拟机装有 QEMU 客户机代理。VirtIO 驱动程序中包含 qemu-guest-agent
  • 第 2 层 vNIC 附加到虚拟机。
  • 与 Windows 虚拟机处于相同网络的机器上装有 RDP 客户端。

流程

  1. 在 OpenShift Virtualization 控制台中,从侧边菜单中点击 WorkloadsVirtualization
  2. Virtual Machines 标签页。
  3. 选择 Windows 虚拟机以打开 Virtual Machine Overview 屏幕。
  4. 点击 Console 选项卡。
  5. Console 列表中,选择 Desktop Viewer
  6. Network Interface 列表中,选择第 2 层 vNIC。
  7. 点击 Launch Remote Desktop 下载 console.rdp 文件。
  8. 打开 RDP 客户端并引用 console.rdp 文件。例如,使用 Remmina

    $ remmina --connect /path/to/console.rdp
  9. 输入 Administrator 用户名和密码以连接至 Windows 虚拟机。

7.7.3. 使用 CLI 命令访问虚拟机控制台

7.7.3.1. 通过 SSH 访问虚拟机实例

您在虚拟机上公开 22 号端口后,即可使用 SSH 来访问虚拟机。

使用 virtctl expose 命令可将虚拟机实例端口转发至节点端口,并为启用的访问创建服务。以下示例创建 fedora-vm-ssh 服务,该服务将 <fedora-vm> 虚拟机的 22 号端口转发至节点上的端口:

先决条件

  • 必须与虚拟机实例处于同一个项目中。
  • 您要访问的虚拟机实例必须使用 masquerade 绑定方法连接至默认的 Pod 网络。
  • 您要访问的虚拟机实例必须正在运行。
  • 安装 OpenShift CLI(oc)。

流程

  1. 运行以下命令来创建 fedora-vm-ssh 服务:

    $ virtctl expose vm <fedora-vm> --port=20022 --target-port=22 --name=fedora-vm-ssh --type=NodePort 1
    1
    <fedora-vm> 是您在其上运行 fedora-vm-ssh 服务的虚拟机的名称。
  2. 检查服务,找出服务获取的端口:

    $ oc get svc

输出示例

NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
fedora-vm-ssh   NodePort   127.0.0.1      <none>        20022:32551/TCP   6s

+ 在本例中,服务获取了 32551 端口。

  1. 通过 SSH 登录虚拟机实例。使用节点的 ipAddress 以及您在上一步中发现的端口:

    $ ssh username@<node_IP_address> -p 32551

7.7.3.2. 访问虚拟机实例的串行控制台

virtctl console 命令可打开特定虚拟机实例的串行控制台。

先决条件

  • 必须安装 virt-viewer 软件包。
  • 您要访问的虚拟机实例必须正在运行。

流程

  • 使用 virtctl 连接至串行控制台:

    $ virtctl console <VMI>

7.7.3.3. 使用 VNC 访问虚拟机实例的图形控制台

virtctl 客户端实用程序可使用 remote-viewer 功能打开正在运行的虚拟机实例的图形控制台。该功能包含在 virt-viewer 软件包中。

先决条件

  • 必须安装 virt-viewer 软件包。
  • 您要访问的虚拟机实例必须正在运行。
注意

如果要通过 SSH 在远程机器上使用 virtctl,您必须将 X 会话转发至您的机器。

流程

  1. 使用 virtctl 实用程序连接至图形界面:

    $ virtctl vnc <VMI>
  2. 如果命令失败,请尝试使用 -v 标志来收集故障排除信息:

    $ virtctl vnc <VMI> -v 4

7.7.3.4. 通过 RDP 控制台连接至 Windows 虚拟机

远程桌面协议 (RDP) 为连接至 Windows 虚拟机提供更好的控制台体验。

要通过 RDP 连接至 Windows 虚拟机,请为 RDP 客户端指定附加的 L2 vNIC 的 IP 地址。

先决条件

  • 正在运行的 Windows 虚拟机装有 QEMU 客户机代理。VirtIO 驱动程序中包含 qemu-guest-agent
  • 附加到虚拟机的第 2 层 vNIC。
  • 与 Windows 虚拟机处于相同网络的机器上装有 RDP 客户端。

流程

  1. 以具有访问令牌的用户身份通过 oc CLI 工具登录 OpenShift Virtualization 集群。

    $ oc login -u <user> https://<cluster.example.com>:8443
  2. 使用 oc describe vmi 显示正在运行的 Windows 虚拟机的配置。

    $ oc describe vmi <windows-vmi-name>

    输出示例

    ...
    spec:
      networks:
      - name: default
        pod: {}
      - multus:
          networkName: cnv-bridge
        name: bridge-net
    ...
    status:
      interfaces:
      - interfaceName: eth0
        ipAddress: 198.51.100.0/24
        ipAddresses:
          198.51.100.0/24
        mac: a0:36:9f:0f:b1:70
        name: default
      - interfaceName: eth1
        ipAddress: 192.0.2.0/24
        ipAddresses:
          192.0.2.0/24
          2001:db8::/32
        mac: 00:17:a4:77:77:25
        name: bridge-net
    ...

  3. 找出并复制第 2 层网络接口的 IP 地址。在以上示例中是 192.0.2.0,如果您首选 IPv6,则为 2001:db8::
  4. 打开 RDP 客户端,并使用上一步中复制的 IP 地址进行连接。
  5. 输入 Administrator 用户名和密码以连接至 Windows 虚拟机。