问题描述

k8s dns主机名无法正常解析 coredns服务一直处于 CrashLoopBackOff状态
kubectl log coredns-fb8b8dccf-m45nb
发现log中有致命错误
[FATAL] plugin/loop: Loop (127.0.0.1:44222 -> :53) detected for zone

认真研读官方文档,原因是coredns会读取系统/etc/resolv.conf的nameserver内容
但是由于里面存在本地回环 如127.0.0.1或者127.0.0.53造成死循环

解决办法

看了网上很多教程 都是又麻烦 又没有效果,这是大家的k8s使用理解不深
解决方法很简单,3步

sudo vim /etc/resolv.conf

将nameserver临时修改为114.114.114.114 ,这只是临时办法 根本原因及永久办法请参考
解决ubuntu系统 dns覆盖写入127.0.0.53的问题

kubectl edit deployment coredns -n kube-system

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

kubectl edit deployment coredns -n kube-system

再将replicates改为2,触发coredns重新读取系统配置

kubectl get pods -n kube-system

检查服务状态为Running

解决dns覆盖问题的根本原因

Logo

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

更多推荐