Kubernetes 中 CoreDNS 的集成与配置详解
1. Kubernetes 中 DNS 记录的设计与问题
在 Kubernetes 中,某些 DNS 记录存在安全隐患。原本用于通配符证书的特定 DNS 记录,虽有其设计初衷,但它削弱了来自 DNS 的身份保证,进而影响了安全性。恶意行为者可能利用这种自动行为,让命名空间外的 Pod 对其他服务呈现为命名空间内的 Pod。因此,这些记录在规范中已被弃用。
2. CoreDNS 与 Kubernetes 的集成
2.1 CoreDNS kubernetes 插件的工作原理
CoreDNS 的 kubernetes 插件类似于控制器,但它不会将数据写回 API 服务器。它会对 Services 和 Endpoints 资源进行监控并缓存数据。当有请求到来时,插件会查找该名称是否对应某个资源,若对应则返回相应数据。
graph LR
A[DNS 请求] --> B[kubernetes 插件]
B --> C{名称是否对应资源}
C -- 是 --> D[返回相应数据]
C -- 否 --> E[无匹配结果]
2.2 响应记录的生成与缓存
响应记录并非预先生成和存储,而是根据传入请求动态构建。由于 Kubernetes 资源存储在内存缓存中,构建记录的速度非常快。通过使用 API 服务器的监控功能,内存中的记录能保持最新状态。CoreDNS 在响应 DNS 查询时无需直接查询 API 服务器,从而保证
超级会员免费看
订阅专栏 解锁全文
106

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



