1.3. DNS 服务组件
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)由一个或多个 RHOSP Controller 主机上运行的多个不同服务组成,默认在一个或多个 RHOSP Controller 主机上运行:
- 指定 API (
designate-api
容器) - 为用户和 RHOSP 网络服务(neutron)提供 OpenStack 标准 REST API,以便与指定交互。API 通过远程过程调用(RPC)来将它们发送到中央服务来处理请求。
- producer (
designate-producer
container) -
编排由指定运行的定期任务。这些任务会长期运行,且潜在可能是大型作业(例如,为 Ceilometer 发出
dns.zone.exists
)、从数据库清除已删除的区域,在其刷新间隔上轮询次要区域,生成延迟的NOTIFY
事务,并调用错误状态的定期恢复。 - Central (
指定中央
容器) - 编配区域和记录设置创建、更新和删除。Central 服务接收由 Designate API 服务发送的 RPC 请求,并将必要的业务逻辑应用到数据,同时将其持久存储协调。
- Worker (
指定 worker
容器) - 为指定管理的 DNS 服务器提供驱动程序的接口。Worker 服务从指定数据库读取服务器配置,还管理 Producer 请求定期任务。
- mini DNS (
designate-mdns
容器) - 管理来自名称服务器的区域权威传输(AXFR)请求。Mini DNS 服务还拉取在指定基础架构外托管的 DNS 区域信息。
图 1.3. DNS 服务架构
在 RHOSP 中,默认情况下,DNS 组件是 BIND 9 和 Unbound:
- BIND 9 (
绑定
容器) - 为 DNS 服务提供 DNS 服务器。BIND 是 DNS 软件的开源套件,特别充当权威名称服务器。
unbound
(未绑定容器)- 履行 DNS 递归解析器的角色,其启动并分类将 DNS 请求转换为 IP 地址所需的查询。unbound 是一个开源程序,DNS 服务将用作其递归解析器。
DNS 服务使用 oslo 兼容数据库存储数据和 oslo 消息传递,以方便服务间的通信。可以正常运行多个 DNS 服务实例,以促进高可用性部署,API 进程通常位于负载均衡器后面。