1.3. DNS 服务组件
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)由几个不同的服务组成,它们默认在一个或多个 RHOSP Controller 主机上运行:
- Designate API (
designate-api容器) - 为用户和 RHOSP Networking 服务(neutron)提供 OpenStack 标准 REST API,以便与 designate 交互。API 通过远程过程调用(RPC)将它们发送到 Central 服务来处理请求。
- producer (
designate-producercontainer) -
编排由指定运行的定期任务。这些任务会长期运行,且潜在可能是大型作业(例如,为 Ceilometer 发出
dns.zone.exists)、从数据库清除已删除的区域,在其刷新间隔上轮询次要区域,生成延迟的NOTIFY事务,并调用错误状态的定期恢复。 - Central (
designate-central容器) - 编配区域和记录设置创建、更新和删除操作。Central 服务接收由 Designate API 服务发送的 RPC 请求,并将必要的业务逻辑应用到数据,同时协调其持久性存储。
- worker (
指定 worker容器) - 为指定管理的 DNS 服务器的驱动程序提供接口。Worker 服务从指定的数据库读取服务器配置,并管理 Producer 请求的定期任务。
- mini DNS (
designate-mdns容器) - 管理来自名称服务器的区域权威传输(AXFR)请求。Mini DNS 服务还会拉取在指定基础架构外托管的 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 进程通常位于负载均衡器后面。