9.2. 指定 DNS 分配给端口的名称
在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)环境中,您可以指定内部 DNS 分配给端口的名称。您可以通过加载 ML2 扩展驱动程序、端口 DNS 域、dns_domain_ports
在 Networking 服务(neutron)中启用此功能。
加载驱动程序后,您可以使用 OpenStack 客户端端口命令、端口集或端口
创建
,with -dns-name
来分配端口名称。
您必须为 DNS 启用端口扩展(dns_domain_ports
)的 DNS 域,以便内部解析 RHOSO 环境中端口的名称。使用 NeutronDnsDomain
默认值 openstacklocal
意味着网络服务不会内部解析 DNS 的端口名称。
另外,当启用端口扩展的 DNS 域时,计算服务会在引导虚拟机实例期间使用实例的 hostname
属性自动填充 dns_name
属性。在引导过程结束时,dnsmasq
会根据其实例主机名识别分配的端口。
先决条件
-
在工作站上安装了
oc
命令行工具。 -
以具有
cluster-admin
权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
流程
使用键值对
service_plugins=dns_domain_ports
更新 control plane:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您设置了
dns_domain_ports
,请确保部署也没有使用dns_domain
,即 DNS 集成扩展。这些扩展不兼容,无法同时定义这两个扩展。RHOSO 用户现在可以为浮动 IP 设置端口转发。
验证
从您的工作站访问 OpenStackClient pod 的远程 shell:
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认网络服务已成功载入
dns_domain_ports
ML2 扩展驱动程序:openstack extension list --network --max-width 75 | \ grep dns-domain-ports --os-cloud <cloud_name>
$ openstack extension list --network --max-width 75 | \ grep dns-domain-ports --os-cloud <cloud_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <cloud_name> 替换为您要运行命令的云的名称。
输出示例
成功验证会生成类似如下的输出:
| dns_domain for ports | dns-domain-ports | Allows the DNS domain to be specified for a network port.
| dns_domain for ports | dns-domain-ports | Allows the DNS domain to be specified for a network port.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在网络(
public
)上创建一个新端口(new_port
)。为端口分配一个 DNS 名称(my_port
)。示例
openstack port create --network public --dns-name my_port new_port
$ openstack port create --network public --dns-name my_port new_port
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示端口的详细信息(
new_port
)。示例
openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
dns_assignment
下,端口的完全限定域名(fqdn
)值包含 DNS 名称的连接(my_port
)以及之前使用NeutronDnsDomain
设置的域名(example.com
)。使用您刚才创建的端口(
new_port
)创建一个新虚拟机实例(my_vm
)。示例
openstack server create --image rhel --flavor m1.small --port new_port my_vm
$ openstack server create --image rhel --flavor m1.small --port new_port my_vm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示端口的详细信息(
new_port
)。示例
openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,计算服务将
dns_name
属性从其原始值(my_port
)改为与端口关联的实例的名称(my_vm
)。退出
openstackclient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow