Kubernetes的DNS服务CoreDNS和NodeLocalDNS
内容提要
最近部署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进行解析,如果本地无缓存应答。