8.12. 使用集群 FQDN 访问虚拟机
您可以使用集群的完全限定域名 (FQDN) 从集群外部访问附加到二级网络接口的虚拟机 (VM)。
使用集群 FQDN 访问虚拟机只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
8.12.1. 为二级网络配置 DNS 服务器 复制链接链接已复制到粘贴板!
当您在 HyperConverged
自定义资源 (CR) 中启用 deployKubeSecondaryDNS
功能门时,Cluster Network Addons Operator (CNAO) 会部署域名服务器 (DNS) 服务器和监控组件。
先决条件
-
已安装 OpenShift CLI(
oc
)。 - 已为集群配置负载均衡器。
-
使用
cluster-admin
权限登录到集群。
流程
运行以下命令,在默认编辑器中编辑
HyperConverged
CR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据以下示例启用 DNS 服务器和监控组件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 启用 DNS 服务器
- 保存文件并退出编辑器。
根据以下示例运行
oc expose
命令,创建一个负载均衡器服务来公开集群外的 DNS 服务器:oc expose -n openshift-cnv deployment/secondary-dns --name=dns-lb \ --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
$ oc expose -n openshift-cnv deployment/secondary-dns --name=dns-lb \ --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来检索外部 IP 地址:
oc get service -n openshift-cnv
$ oc get service -n openshift-cnv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-lb LoadBalancer 172.30.27.5 10.46.41.94 53:31829/TCP 5s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-lb LoadBalancer 172.30.27.5 10.46.41.94 53:31829/TCP 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再次编辑
HyperConverged
CR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将您之前检索到的外部 IP 地址添加到企业 DNS 服务器记录的
kubeSecondaryDNSNameServerIP
字段中。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定负载均衡器服务公开的外部 IP 地址。
- 保存文件并退出编辑器。
运行以下命令来检索集群 FQDN:
oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
$ oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
openshift.example.com
openshift.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指向 DNS 服务器。将
kubeSecondaryDNSNameServerIP
值和集群 FQDN 添加到企业 DNS 服务器记录中。例如:vm.<FQDN>. IN NS ns.vm.<FQDN>.
vm.<FQDN>. IN NS ns.vm.<FQDN>.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ns.vm.<FQDN>. IN A <kubeSecondaryDNSNameServerIP>
ns.vm.<FQDN>. IN A <kubeSecondaryDNSNameServerIP>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.12.2. 使用集群 FQDN 连接到二级网络上的虚拟机 复制链接链接已复制到粘贴板!
您可以使用集群的完全限定域名(FQDN)访问附加到二级网络接口的正在运行的虚拟机(VM)。
先决条件
- 您在虚拟机上安装了 QEMU 客户机代理。
- 虚拟机的 IP 地址是公共的。
- 为二级网络配置了 DNS 服务器。
您获取了集群的完全限定域名(FQDN)。
要获取 FQDN,请使用
oc get
命令,如下所示:oc get dnses.config.openshift.io cluster -o json | jq .spec.baseDomain
$ oc get dnses.config.openshift.io cluster -o json | jq .spec.baseDomain
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
运行以下命令,从虚拟机配置检索网络接口名称:
oc get vm -n <namespace> <vm_name> -o yaml
$ oc get vm -n <namespace> <vm_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 请注意网络接口的名称。
使用
ssh
命令连接到虚拟机:ssh <user_name>@<interface_name>.<vm_name>.<namespace>.vm.<cluster_fqdn>
$ ssh <user_name>@<interface_name>.<vm_name>.<namespace>.vm.<cluster_fqdn>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow