CoreDNS与DNS基础理论详解
1. CoreDNS简介
在容器化环境中,追踪特定服务的运行位置颇具挑战。例如,支持数据库服务的容器若要与授权服务通信,以确定用户是否可进行特定搜索,而授权服务的容器又会根据负载动态启停,此时如何获取所有正在运行的授权容器列表呢?答案通常是DNS(Domain Name System,域名系统)。由于容器间通信多基于IP协议,且开发者多年来一直用DNS查找资源的IP地址,所以用DNS识别提供特定服务的容器是很自然的选择。
CoreDNS在这方面表现出色。它不仅是灵活、安全的DNS服务器,还能直接与包括Kubernetes在内的众多容器编排系统集成,方便容器化应用的管理员设置DNS服务器,促进容器间的通信。
不过,CoreDNS也有显著局限性,并非适用于所有DNS场景。截至目前,它不支持完全递归查询,即无法从DNS命名空间的根开始查询,向根DNS服务器发起请求并逐级查询,直至从权威DNS服务器获取答案,而是依赖其他DNS服务器(转发器)来完成。以下是CoreDNS与BIND功能的关键差异对比:
| 功能 | CoreDNS | BIND |
| ---- | ---- | ---- |
| 完全递归 | 否 | 是 |
| 动态更新 | 否 | 是 |
| 与Kubernetes集成 | 是 | 否 |
| 与Amazon Route 53集成 | 是 | 否 |
| 域名系统安全扩展(DNSSEC)支持 | 有限 | 全面 |
| DNS over Transport Layer Security(DoT)支持 | 是 | 否 |
超级会员免费看
订阅专栏 解锁全文
3503

被折叠的 条评论
为什么被折叠?



