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

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

在虚拟机上公开 22 端口后,就可以使用 SSH 访问虚拟机(VM)。

virtctl expose 命令可将虚拟机实例(VMI)端口转发到节点端口,并创建一个服务以启用对它的访问。以下示例创建 fedora-vm-ssh 服务,它将集群节点的特定端口流量转发到 <fedora-vm> 虚拟机的端口 22。

先决条件

  • 您必须与 VMI 在同一个项目中。
  • 您要访问的 VMI 必须使用 masquerade 绑定方法连接到默认 pod 网络。
  • 您要访问的 VMI 必须正在运行。
  • 安装 OpenShift CLI(oc)。

流程

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

    $ virtctl expose vm <fedora-vm> --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>        22:32551/TCP   6s

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

  1. 通过 SSH 登录 VMI。使用任何集群节点的 ipAddress,以及在上一步中找到的端口:

    $ ssh username@<node_IP_address> -p 32551