我遇到了一个问题,coredns似乎不能在我的ubuntu示例上工作,我从日志中得到了以下错误:
2020-07-16T05:28:36.648Z [INFO] 172.17.0.8:60594 - 29368 "AAAA IN redis-master.cluster.local. udp 44 false 512" NXDOMAIN qr,rd 137 0.000053955s
2020-07-16T05:28:36.650Z [INFO] 172.17.0.8:43585 - 56935 "AAAA IN redis-master. udp 30 false 512" NXDOMAIN qr,rd,ra 30 0.001305981s
2020-07-16T05:28:36.650Z [INFO] 172.17.0.8:43585 - 55951 "A IN redis-master. udp 30 false 512" NXDOMAIN qr,rd,ra 30 0.001790145s
2020-07-16T05:28:36.803Z [INFO] 172.17.0.11:60313 - 14198 "A IN redis-master.cluster.local. udp 44 false 512" NXDOMAIN qr,rd 137 0.000083909s
2020-07-16T05:28:36.803Z [INFO] 172.17.0.11:60313 - 14670 "AAAA IN redis-master.cluster.local. udp 44 false 512" NXDOMAIN qr,rd 137 0.000078636s
2020-07-16T05:28:36.808Z [INFO] 172.17.0.11:42385 - 5737 "A IN redis-master.svc.cluster.local. udp 48 false 512" NXDOMAIN qr,rd 141 0.000095061s
2020-07-16T05:28:36.808Z [INFO] 172.17.0.11:42385 - 6139 "AAAA IN redis-master.svc.cluster.local. udp 48 false 512" NXDOMAIN qr,rd 141 0.000088591s
2020-07-16T05:28:36.809Z [INFO] 172.17.0.11:47547 - 18338 "A IN redis-master.cluster.local. udp 44 false 512" NXDOMAIN qr,rd 137 0.000077331s
我希望从文档中找到的以下段落here是解决方案:
一些Linux发行版(例如Ubuntu)默认使用本地DNS解析器(systemd-resolved). Systemd-resolved移动/etc/resolv.conf并将其替换为一个存根文件,该存根文件在解析上游服务器中的名称时会导致致命的转发循环。这可以通过使用kubelet的--resolv-conf标志来手动修复,以指向正确的resolv.conf(对于systemd-resolved,这是/run/systemd/resolve/resolv.conf). kubeadm会自动检测systemd-resolved,并相应地调整kubelet标志.
然而,我对如何执行对Kubelet的调用缺乏了解。我可以使用一个解释或代码示例来说明它应该如何完成。
我不确定它是否相关,但我正在使用minikube来测试我的集群。
提前感谢您的帮助,干杯!
3条答案
按热度按时间ckocjqey1#
听起来像是minikube中
systemd-resolved
和coredns的冲突。您可以尝试禁用systemd-resolved
,因为您没有使用kubeadm创建集群:/etc/NetworkManager/NetworkManager.conf
的[main]
部分:/etc/resolv.conf
💣zvms9eto2#
我今天遇到了这个问题,这是我发现的-我仍在验证这个答案。
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
为每个运行kubelet的主机创建以下文件。
/etc/系统/系统/文件系统/文件系统/文件系统/文件系统
zujrkrfu3#
虽然最初的问题是关于minikube集群的,但这里有几种使用kubeadm创建集群的方法。
第一个方法,使用写入旗标时已过时的--resolv-conf
Source of information https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/kubelet-integration/#the-kubelet-drop-in-file-for-systemd
/etc/default/kubelet
KUBELET_EXTRA_ARGS=--resolv-conf=path_to_your_resolv.conf
sudo systemctl restart kubelet
第二个使用KubeletConfiguration对象
Source https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/#updating-the-kubeletconfiguration
kubectl edit cm -n kube-system kubelet-config
中存储的kubelet配置,查找resolvConf: ***
kubeadm upgrade node phase kubelet-config
上的本地配置sudo systemctl restart kubelet