前几天在自己的实验室环境里面搭建了一个简单的k8s环境,该环境是基于kubeadm搭建的single master节点,并且有两台计算节点。可是环境搭建好了以后,CoreDNS一直存在报错,查看coredns日志,报错内容如下:
coredns 日志截图
于此同时我还观察到coredns的pod一直在不停的重启,如下图所示:
coredns pod状态

折腾了两天,一直没找到原因,先前以为是k8s的网络插件的问题,后来换了calico和flannel都出现这个问题,最后在coredns的github上的readme文件找到了其对这个问题的解释,对应的url地址如下:
https://github.com/coredns/coredns/blob/master/plugin/loop/README.md
在这里插入图片描述
如上是原文的的一部分,大致上是说CoreDNS启动后会通过宿主机的resolv.conf文件去获取上游DNS的信息,如果这个时候获取的DNS的服务器是本地地址的话,就会出现环路,从而被环路识别器识别出来。
最后果断采用了上文所述的第三种方式,修改掉了corefile中proxy的值,将/etc/resolv.conf修改成实验环境中DNS服务器的地址。
在这里插入图片描述
最后coredns终于没有报错的工作了起来 :
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐