Kubernetes的DNS服务CoreDNS和NodeLocalDNS
💡
原文中文,约2200字,阅读约需6分钟。
📝
内容提要
最近部署k8s集群时,容器解析集群外自建dns中配置的域名报错。将容器中的NodeLocalDNS地址注释掉后解析正常。NodeLocalDNS访问上游CoreDNS解析异常。修改/etc/resolv.conf太麻烦,将coredns cm配置中forward /etc/resolv.conf改成forward . 172.20.xx.10 172.20.xx.20临时解决。
🎯
关键要点
- 在部署k8s集群时,容器解析外部自建DNS的域名报错。
- 注释掉容器中的NodeLocalDNS地址后,解析恢复正常。
- NodeLocalDNS访问上游CoreDNS时出现解析异常。
- 由于Pod数量庞大,修改/etc/resolv.conf非常麻烦。
- 临时解决方案是将coredns cm配置中的forward改为forward . 172.20.xx.10 172.20.xx.20。
- NodeLocal DNSCache通过在节点上运行DNS缓存代理来提高DNS性能。
- 启用NodeLocal DNSCache后,DNS查询路径包括多个步骤,涉及NodeLocal DNSCache和kube-dns服务。
- NodeLocal DNSCache的工作原理包括缓存查询和备用链路的处理。
❓
延伸问答
在部署k8s集群时,容器解析外部DNS时出现了什么问题?
容器解析外部自建DNS的域名报错,NodeLocalDNS访问上游CoreDNS解析异常。
如何临时解决NodeLocalDNS导致的解析异常?
将coredns cm配置中的forward改为forward . 172.20.xx.10 172.20.xx.20。
NodeLocal DNSCache的主要功能是什么?
NodeLocal DNSCache通过在节点上运行DNS缓存代理来提高DNS性能。
启用NodeLocal DNSCache后,DNS查询的路径是怎样的?
DNS查询路径包括NodeLocal DNSCache、kube-dns服务和CoreDNS,涉及多个步骤。
为什么修改/etc/resolv.conf在Pod数量庞大的情况下很麻烦?
因为Pod数量庞大,逐个修改/etc/resolv.conf非常麻烦。
NodeLocal DNSCache在DNS查询中如何处理缓存缺失?
NodeLocal DNSCache会通过kube-dns服务请求CoreDNS进行解析,如果本地无缓存应答。
🏷️
标签
➡️