18.3. 指定 DNS 分配给端口的名称
当您启用 Red Hat OpenStack Platform (RHOSP)网络服务(neutron) DNS 为端口扩展(dns_domain_ports
)时,您可以指定内部 DNS 分配给端口的名称。
您可以通过在 YAML 格式的环境文件中声明 RHOSP Orchestration (heat) NeutronPlugin Extensions
参数,为端口扩展启用 dns_domain。使用对应的参数 NeutronDnsDomain
,您可以指定您的域名,该域名会覆盖默认值 openstacklocal
。重新部署 overcloud 后,您可以使用 OpenStack 客户端端口命令( port set
或 port create
)来分配 端口名称
。
另外,当启用端口扩展的 dns_domain 时,Compute 服务会在引导虚拟机实例期间使用实例的 hostname
属性自动填充 dns_name
属性。在引导过程结束时,dnsmasq 会根据其实例主机名识别分配的端口。
流程
以 stack 用户身份登录 undercloud,再提供
stackrc
文件,以启用 director 命令行工具。示例
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建自定义 YAML 环境文件(
my-neutron-environment.yaml
)。注意括号内的值是此流程中示例命令中使用的示例值。将这些示例值替换为适合您的站点的值。
示例
vi /home/stack/templates/my-neutron-environment.yaml
$ vi /home/stack/templates/my-neutron-environment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示undercloud 包括一组编配服务模板,组成您的 overcloud 创建计划。您可以使用环境文件来自定义 overcloud 的各个方面,这些文件是 YAML 格式的文件,该文件会覆盖核心编排服务模板集合中的参数和资源。您可以根据需要纳入多个环境文件。
在 环境文件中,添加一个
parameter_defaults
部分。在本节下,为端口扩展名添加dns_domain_ports
。示例
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您设置了
dns_domain_ports
,请确保部署也没有使用dns_domain
,即 DNS 集成扩展。这些扩展不兼容,无法同时定义这两个扩展。另外,在
parameter_defaults
部分中,使用NeutronDnsDomain
参数添加您的域名(example.com
)。示例
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports" NeutronDnsDomain: "example.com"
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports" NeutronDnsDomain: "example.com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
openstack overcloud deploy
命令,并包括核心编配模板、环境文件和这个新环境文件。重要但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。
示例
openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
登录到 overcloud,并在网络 (
public
) 上创建一个新端口 (new_port
)。为端口分配一个 DNS 名称(my_port
)。示例
source ~/overcloudrc openstack port create --network public --dns-name my_port new_port
$ source ~/overcloudrc $ 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
)。