8.13. 使用其外部 FQDN 访问虚拟机
您可以使用其完全限定域名 (FQDN) 访问从集群外部附加到二级网络接口的虚拟机。
使用其 FQDN 从集群外部访问虚拟机只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
8.13.1. 为二级网络配置 DNS 服务器
					当您在 HyperConverged 自定义资源 (CR) 中启用 deployKubeSecondaryDNS 功能门时,Cluster Network Addons Operator (CNAO) 会部署域名服务器 (DNS) 服务器和监控组件。
				
先决条件
- 
							已安装 OpenShift CLI(oc)。
- 已为集群配置负载均衡器。
- 
							使用 cluster-admin权限登录到集群。
流程
- 运行以下命令,在默认编辑器中编辑 - HyperConvergedCR:- 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 
- 再次编辑 - HyperConvergedCR:- 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.13.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