×

您可以使用其完全限定域名 (FQDN) 访问连接到辅助网络接口的虚拟机 (VM)。

使用FQDN从集群外部访问虚拟机仅是技术预览功能。技术预览功能不受Red Hat生产服务级别协议 (SLA) 的支持,并且功能可能不完整。Red Hat不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关Red Hat技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围

为辅助网络配置DNS服务器

当您在HyperConverged自定义资源 (CR) 中启用deployKubeSecondaryDNS功能开关时,集群网络附加组件操作器 (CNAO) 将部署域名服务器 (DNS) 服务器和监控组件。

先决条件
  • 您已安装OpenShift CLI (oc)。

  • 您已为集群配置了负载均衡器。

  • 您已使用cluster-admin权限登录到集群。

步骤
  1. 通过运行以下命令在默认编辑器中编辑HyperConverged CR

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. 根据以下示例启用DNS服务器和监控组件

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
        featureGates:
          deployKubeSecondaryDNS: true (1)
    # ...
    1 启用DNS服务器
  3. 保存文件并退出编辑器。

  4. 通过运行以下示例中的oc expose命令创建负载均衡器服务以在集群外部公开DNS服务器

    $ oc expose -n openshift-cnv deployment/secondary-dns --name=dns-lb \
      --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
  5. 通过运行以下命令检索外部IP地址

    $ oc get service -n openshift-cnv
    示例输出
    NAME       TYPE             CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
    dns-lb     LoadBalancer     172.30.27.5    10.46.41.94      53:31829/TCP     5s
  6. 再次编辑HyperConverged CR

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  7. 将您之前检索到的外部IP地址添加到企业DNS服务器记录中的kubeSecondaryDNSNameServerIP字段中。例如

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      featureGates:
        deployKubeSecondaryDNS: true
      kubeSecondaryDNSNameServerIP: "10.46.41.94" (1)
    # ...
    1 指定负载均衡器服务公开的外部IP地址。
  8. 保存文件并退出编辑器。

  9. 运行以下命令检索集群FQDN

     $ oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
    示例输出
    openshift.example.com
  10. 指向DNS服务器。为此,请将kubeSecondaryDNSNameServerIP值和集群FQDN添加到企业DNS服务器记录中。例如

    vm.<FQDN>. IN NS ns.vm.<FQDN>.
    ns.vm.<FQDN>. IN A <kubeSecondaryDNSNameServerIP>

使用集群FQDN连接到辅助网络上的虚拟机

您可以使用集群的完全限定域名 (FQDN) 访问连接到辅助网络接口的正在运行的虚拟机 (VM)。

先决条件
  • 您已在虚拟机上安装了QEMU访客代理。

  • 虚拟机的IP地址是公网IP。

  • 您已配置了辅助网络的DNS服务器。

  • 您已检索到集群的完全限定域名 (FQDN)。

    要获取FQDN,请使用以下oc get命令

    $ oc get dnses.config.openshift.io cluster -o json | jq .spec.baseDomain
步骤
  1. 运行以下命令从虚拟机配置中检索网络接口名称

    $ oc get vm -n <namespace> <vm_name> -o yaml
    示例输出
    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      running: true
      template:
        spec:
          domain:
            devices:
              interfaces:
                - bridge: {}
                  name: example-nic
    # ...
          networks:
          - multus:
              networkName: bridge-conf
            name: example-nic (1)
    1 记下网络接口的名称。
  2. 使用ssh命令连接到虚拟机

    $ ssh <user_name>@<interface_name>.<vm_name>.<namespace>.vm.<cluster_fqdn>