指定 - DNS 服务¶
概述¶
指定为 OpenStack 提供 DNSaaS 服务
用于域/记录管理的 REST API
多租户
与 Keystone 集成进行身份验证
框架已到位,可与 Nova 和 Neutron 通知集成(用于自动生成记录)
开箱即用支持 Bind9 和 Infoblox
Kolla 部署上的配置¶
在 /etc/kolla/globals.yml 中启用指定服务
enable_designate: "yes"
neutron_dns_domain: "example.org."
重要提示
neutron_dns_domain 值必须与 openstacklocal(其默认值)不同,并且必须以句点 . 结尾。
重要提示
DNS 集成 默认启用,可以通过将 neutron_dns_integration: no 添加到 /etc/kolla/globals.yml 并使用 --tags neutron 重新配置来禁用。
在 /etc/kolla/globals.yml 中配置指定选项
重要提示
指定 MDNS 节点需要管理网络可访问 dns_interface。
dns_interface: "eth1"
designate_ns_record:
- "ns1.sample.openstack.org"
重要提示
如果将多个节点分配为指定工作器,则必须启用受支持的协调后端,目前仅支持 valkey。可以通过 designate_coordination_backend 变量覆盖后端选择。当 valkey 启用(enable_valkey 设置为 yes)时,它默认为 valkey。
根据您打算使用的后端,需要以下其他变量
Bind9 后端¶
在 /etc/kolla/globals.yml 中配置指定选项
designate_backend: "bind9"
Infoblox 后端¶
重要提示
当使用 Infoblox 作为指定后端时,MDNS 节点需要容器监听 53 端口。由于这是一个特权端口,您需要构建指定-mdns 容器以使用 root 用户而不是指定用户运行。
在 /etc/kolla/globals.yml 中配置指定选项
designate_backend: "infoblox"
designate_backend_infoblox_nameservers: "192.168.1.1,192.168.1.2"
designate_infoblox_host: "192.168.1.1"
designate_infoblox_wapi_url: "https://infoblox.example.com/wapi/v2.1/"
designate_infoblox_auth_username: "username"
designate_infoblox_ns_group: "INFOBLOX"
在 /etc/kolla/passwords.yml 中配置指定选项
designate_infoblox_auth_password: "password"
有关 Infoblox 后端工作方式的更多信息,请参阅 Infoblox 后端。
Neutron 和 Nova 集成¶
designate-sink 是一个可选服务,它监听事件通知,例如 compute.instance.create.end,并为 Nova 和 Neutron 提供处理程序。然后可以使用通知事件来触发记录创建和删除。
注意
在 kolla 部署中,designate-sink 服务默认禁用,可以通过 designate_enable_notifications_sink: yes 启用。
为 Neutron 创建默认指定区域
openstack zone create --email admin@sample.openstack.org sample.openstack.org.
创建 designate-sink 自定义配置文件夹
mkdir -p /etc/kolla/config/designate/
将指定区域 ID 附加到 /etc/kolla/config/designate/designate-sink.conf
[handler:nova_fixed]
zone_id = <ZONE_ID>
[handler:neutron_floatingip]
zone_id = <ZONE_ID>
重新配置指定
kolla-ansible reconfigure -i <INVENTORY_FILE> --tags designate,neutron,nova
验证操作¶
列出可用的网络
openstack network list
将域关联到网络
openstack network set <NETWORK_ID> --dns-domain sample.openstack.org.
启动实例
openstack server create \
--image cirros \
--flavor m1.tiny \
--key-name mykey \
--nic net-id=${NETWORK_ID} \
my-vm
在指定中检查 DNS 记录
openstack recordset list sample.openstack.org.
+--------------------------------------+---------------------------------------+------+---------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+---------------------------------------+------+---------------------------------------------+--------+--------+
| 5aec6f5b-2121-4a2e-90d7-9e4509f79506 | sample.openstack.org. | SOA | sample.openstack.org. | ACTIVE | NONE |
| | | | admin.sample.openstack.org. 1485266928 3514 | | |
| | | | 600 86400 3600 | | |
| 578dc94a-df74-4086-a352-a3b2db9233ae | sample.openstack.org. | NS | sample.openstack.org. | ACTIVE | NONE |
| de9ff01e-e9ef-4a0f-88ed-6ec5ecabd315 | 192-168-190-232.sample.openstack.org. | A | 192.168.190.232 | ACTIVE | NONE |
| f67645ee-829c-4154-a988-75341050a8d6 | my-vm.None.sample.openstack.org. | A | 192.168.190.232 | ACTIVE | NONE |
| e5623d73-4f9f-4b54-9045-b148e0c3342d | my-vm.sample.openstack.org. | A | 192.168.190.232 | ACTIVE | NONE |
+--------------------------------------+---------------------------------------+------+---------------------------------------------+--------+--------+
向指定 dns_interface IP 地址查询实例 DNS 信息
dig +short -p 5354 @<DNS_INTERFACE_IP> my-vm.sample.openstack.org. A
192.168.190.232
有关指定工作方式的更多信息,请参阅 指定,OpenStack 的 DNSaaS 组件。