栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

coredns Pod具有CrashLoopBackOff或Error状态

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

coredns Pod具有CrashLoopBackOff或Error状态

这个错误

[FATAL] plugin/loop: Seen "HINFO IN 6900627972087569316.7905576541070882081." more than twice, loop detected

是当CoreDNS在解析配置中检测到循环时引起的,这是预期的行为。您遇到了以下问题:

https://github.com/kubernetes/kubeadm/issues/1162

https://github.com/coredns/coredns/issues/2087

hacky解决方案:禁用CoreDNS循环检测

编辑CoreDNS配置图:

kubectl -n kube-system edit configmap coredns

使用删除或注释掉该行

loop
,然后保存并退出。

然后删除CoreDNS Pod,以便可以使用新的配置创建新的Pod:

kubectl -n kube-system delete pod -l k8s-app=kube-dns

在那之后一切都会好起来的。

首选解决方案:删除DNS配置中的循环

首先,检查您是否正在使用

systemd-resolved
。如果您正在运行Ubuntu 18.04,则可能是这种情况。

systemctl list-unit-files | grep enabled | grep systemd-resolved

如果是,请检查

resolv.conf
集群使用哪个文件作为参考:

ps auxww | grep kubelet

您可能会看到类似以下的行:

/usr/bin/kubelet ... --resolv-conf=/run/systemd/resolve/resolv.conf

重要的部分是

--resolv-conf
-我们确定是否使用了systemd resolv.conf。

如果是

resolv.conf
systemd
,请执行以下操作:

检查的内容

/run/systemd/resolve/resolv.conf
以查看是否有类似的记录:

nameserver 127.0.0.1

如果存在

127.0.0.1
,则它是导致循环的原因。

要摆脱它,您不应编辑该文件,而应检查其他位置以使其正确生成。

检查下的所有文件,

/etc/systemd/network
以及是否找到类似的记录

DNS=127.0.0.1

删除该记录。还要检查

/etc/systemd/resolved.conf
并根据需要执行相同的操作。确保至少配置了一台或两台DNS服务器,例如

DNS=1.1.1.1 1.0.0.1

完成所有这些之后,重新启动systemd服务以使更改生效:systemctl restart systemd-networkd systemd-
resolved

之后,确认文件中

DNS=127.0.0.1
不再存在该
resolv.conf
文件:

cat /run/systemd/resolve/resolv.conf

最后,触发DNS容器的重新创建

kubectl -n kube-system delete pod -l k8s-app=kube-dns

简介: 解决方案涉及从主机DNS配置中消除看起来像DNS查找循环的内容。不同的resolv.conf管理器/实现之间的步骤有所不同。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号