系统集成Kubernetes

K8s dns主机名无法正常解析,coredns服务一直处于CrashLoopBackOff状态?

详细描述:    K8s dns主机名无法正常解析,coredns服务一直处于CrashLoopBackOff状态    kubectl log coredns    发现log中有错误    plugin/loop: Loop (127.0.0.1:44222 -> :53) detected for zone显示全部

详细描述:
    K8s dns主机名无法正常解析,coredns服务一直处于CrashLoopBackOff状态
    kubectl log coredns
    发现log中有错误
    plugin/loop: Loop (127.0.0.1:44222 -> :53) detected for zone

收起
参与5

返回zzhenglei的回答

zzhengleizzhenglei技术经理某保险

coredns主要和resolv.conf打交道,查询resolv中是否形成相应的环造成错误

原因分析:

coredns会读取系统中/etc/resov.conf中的nameserver内容,如果里面存在本地回环如127.0.0.1或者127.0.0.53那么就容易造成死循环

解决步骤:

临时修改方案: vim /etc/resolv.conf 将nameserver 临时修改为114.114.114.114

若临时手动修改,每次重启都会被覆盖的话,则进行如下的操作:

sudo systemctl stop systemd-resolved

sudo systemctl disable systemd-resolved

sudo apt install unbound

sudo rm -rf /etc/resolv.conf

sudo vim /etc/NetworkManager/NetworkManager.conf

在[main]下添加

dns=unbound

将dns服务替换为unbound

reboot 服务器

之后:

kubectl edit deployment coredns -n kube-system

将replicates改为0,从而停止已经启动的coredns pod

再将replicates 改为2, 这样会触发coredns重新读取系统配置,此时服务的状态为Running

保险 · 2020-02-18
浏览3002

回答者

zzhenglei
技术经理某保险
擅长领域: 云计算容器一体化运维

zzhenglei 最近回答过的问题

回答状态

  • 发布时间:2020-02-18
  • 关注会员:3 人
  • 回答浏览:3002
  • X社区推广