第 4 章 使用集成的 DNS 服务
Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)与 Networking 服务(neutron)集成,为端口和计算服务(nova)虚拟机实例提供自动记录创建。
云管理员使用 DNS 服务创建它们与网络关联的区域。通过使用云管理员提供的该网络,云用户可以创建虚拟机实例、端口或浮动 IP,DNS 服务会自动创建必要的 DNS 记录。
在 DNS 服务部署安装工具集期间,RHOSP director 加载 Networking 服务(neutron)扩展 dns_domain_ports
。此扩展允许您在 RHOSP 端口、网络和浮动 IP 中添加以下 DNS 属性:
资源 | DNS 名称 | DNS 域(区) |
---|---|---|
端口 | 是 | 是 |
网络 | 否 | 是 |
浮动 IP | 是 | 是 |
对于在网络和浮动 IP 上指定的 DNS 域,浮动 IP 端口上的域优先于网络上设置的域。
在 Red Hat OpenStack Platform (RHOSP) 17.1 GA 中,提供了一个技术预览,用于 RHOSP Networking 服务(neutron) ML2/OVN 和 RHOSP DNS 服务(指定)。因此,DNS 服务不会自动为新创建的虚拟机添加 DNS 条目。
本节中包含的主题有:
4.1. 为 DNS 集成设置项目 复制链接链接已复制到粘贴板!
云管理员创建云用户在创建虚拟机实例、端口或浮动 IP 时必须指定所需的区域、网络和子网。由于 RHOSP 网络服务(neutron)与 DNS 服务(指定)集成,因此当云用户创建这些对象时,它们会自动添加到 DNS 服务中。
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
先决条件
-
您必须是具有
admin
角色的 RHOSP 用户。 -
用于端口和虚拟机的网络无法将属性
router:external
设置为True
。在创建网络时,必须指定the--external
选项。 - 网络必须是以下类型之一:FLAT、VLAN、GRE、VXLAN 或 GENEVE。
对于 VLAN、GRE、VXLAN 或 GENEVE 网络,分段 ID 必须在网络服务
ml2_conf.ini
文件中配置的范围之内。ml2_conf.ini
文件位于/var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2
中的 Controller 节点主机上。+ 使用下表来确定哪个部分和选项以咨询您的网络分段 ID 范围:Expand 表 4.2. ml2_conf.ini 选项用于设置网络分段 ID 网络类型 节 选项 Geneve
[ml2_type_geneve]
vni_ranges
GRE
[ml2_type_gre]
tunnel_id_ranges
VLAN
[ml2_type_vlan]
network_vlan_ranges
VXLAN
[ml2_type_vxlan]
vni_ranges
如果没有满足这些先决条件,网络服务将使用默认的 dns_domain
值 openstacklocal.
在内部解析器中创建 DNS 分配。
流程
作为云管理员,提供您的凭据文件。
Example
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建您希望特定项目中的用户创建 DNS 条目的区域:
示例
在本例中,云管理员创建一个名为
example.com
的区域,并指定项目 IDf75ec24a-d361-ab86-54c0-dfe6093245a3
的权限,将记录设置为区:openstack zone create --email example@example.com example.com. --sudo-project-id f75ec24a-d361-ab86-54c0-dfe6093245a3
$ openstack zone create --email example@example.com example.com. --sudo-project-id f75ec24a-d361-ab86-54c0-dfe6093245a3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意DNS 域必须始终是一个完全限定域名(FQDN),这意味着它始终以句点结尾。
创建您希望特定项目中的用户创建 DNS 条目的网络。
示例
在本例中,云管理员会创建一个网络
example-network
,它使用之前创建的区域example.com.
和一个分段 ID2017
,其位于 ml2_conf.ini 中定义的范围之外:openstack network create --dns-domain example.com. \ --provider-segment 2017 --provider-network-type geneve \ example-network
$ openstack network create --dns-domain example.com. \ --provider-segment 2017 --provider-network-type geneve \ example-network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在网络上,创建一个子网。
示例
在本例中,云管理员在网络上创建一个子网
example-
subnetopenstack subnet create \ --allocation-pool start=192.0.2.10,end=192.0.2.200 \ --network example-network \ --subnet-range 192.0.2.0/24 \ example-subnet
$ openstack subnet create \ --allocation-pool start=192.0.2.10,end=192.0.2.200 \ --network example-network \ --subnet-range 192.0.2.0/24 \ example-subnet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 指示项目中的云用户使用您在添加实例、端口和浮动 IP 时创建的区域和网络。
如果用户创建实例、端口或浮动 IP 没有在区中创建记录集,或者如果 DNS 服务中不存在该区,则网络服务将执行以下操作:
-
创建带有
dns_assignment
字段的端口,使用dns_domain
提供的信息生成。 - 不创建 DNS 服务中设置的记录。
- 记录错误:"Error publish port data in external DNS service."。
验证
确认您创建的网络是否存在。
Example
openstack network show example-network
$ openstack network show example-network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow