这是调查开始的地方: CoreDNS无法工作超过几秒钟,从而产生以下错误:
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx ingress-nginx-controller-8xcl9 1/1 Running 0 11h
ingress-nginx ingress-nginx-controller-hwhvk 1/1 Running 0 11h
ingress-nginx ingress-nginx-controller-xqdqx 1/1 Running 2 (10h ago) 11h
kube-system calico-kube-controllers-684bcfdc59-cr7hr 1/1 Running 0 11h
kube-system calico-node-62p58 1/1 Running 2 (10h ago) 11h
kube-system calico-node-btvdh 1/1 Running 0 11h
kube-system calico-node-q5bkr 1/1 Running 0 11h
kube-system coredns-8474476ff8-dnt6b 0/1 CrashLoopBackOff 1 (3s ago) 5s
kube-system coredns-8474476ff8-ftcbx 0/1 Error 1 (2s ago) 5s
kube-system dns-autoscaler-5ffdc7f89d-4tshm 1/1 Running 2 (10h ago) 11h
kube-system kube-apiserver-hyzio 1/1 Running 4 (10h ago) 11h
kube-system kube-controller-manager-hyzio 1/1 Running 4 (10h ago) 11h
kube-system kube-proxy-2d8ls 1/1 Running 0 11h
kube-system kube-proxy-c6c4l 1/1 Running 4 (10h ago) 11h
kube-system kube-proxy-nzqdd 1/1 Running 0 11h
kube-system kube-scheduler-hyzio 1/1 Running 5 (10h ago) 11h
kube-system kubernetes-dashboard-548847967d-66dwz 1/1 Running 0 11h
kube-system kubernetes-metrics-scraper-6d49f96c97-r6dz2 1/1 Running 0 11h
kube-system nginx-proxy-dyzio 1/1 Running 0 11h
kube-system nginx-proxy-zyzio 1/1 Running 0 11h
kube-system nodelocaldns-g9wxh 1/1 Running 0 11h
kube-system nodelocaldns-j2qc9 1/1 Running 4 (10h ago) 11h
kube-system nodelocaldns-vk84j 1/1 Running 0 11h
kube-system registry-j5prk 1/1 Running 0 11h
kube-system registry-proxy-5wbhq 1/1 Running 0 11h
kube-system registry-proxy-77lqd 1/1 Running 0 11h
kube-system registry-proxy-s45p4 1/1 Running 2 (10h ago) 11h那个吊舱上的kubectl describe并没有给照片带来太多东西:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 67s default-scheduler Successfully assigned kube-system/coredns-8474476ff8-dnt6b to zyzio
Normal Pulled 25s (x4 over 68s) kubelet Container image "k8s.gcr.io/coredns/coredns:v1.8.0" already present on machine
Normal Created 25s (x4 over 68s) kubelet Created container coredns
Normal Started 25s (x4 over 68s) kubelet Started container coredns
Warning BackOff 6s (x11 over 66s) kubelet Back-off restarting failed container但是查看日志确实做到了:
$ kubectl logs coredns-8474476ff8-dnt6b -n kube-system
.:53
[INFO] plugin/reload: Running configuration MD5 = 5b233a0166923d642fdbca0794b712ab
CoreDNS-1.8.0
linux/amd64, go1.15.3, 054c9ae
[FATAL] plugin/loop: Loop (127.0.0.1:49048 -> :53) detected for zone ".", see https://coredns.io/plugins/loop#troubleshooting. Query: "HINFO 2906344495550081187.9117452939332601176."链接到故障排除文档是很好的!我开始浏览那个页面,发现我的/etc/resolv.conf确实包含有问题的本地IP nameserver 127.0.0.53。
此外,我在/run/systemd/resolve/resolv.conf中找到了真正的DNS is,但现在的问题是:如何执行故障排除文档中描述的操作,并说:
将以下内容添加到您的kubelet配置yaml中: resolvConf:(或通过命令行标志您的“真实”resolv.conf包含您的上游服务器的实际is,并且没有本地/回送地址。此标志告诉kubelet将备用resolv.conf传递给Pods。对于使用systemd解析的系统,/run/systemd/ can通常是“真正”resolv.conf的位置,尽管这可能因您的发行版不同而有所不同。
因此,问题是:
resolvConf值,以及发布于 2021-10-27 13:45:38
/etc/resolv.conf/位于每个节点中。您可以通过SSH将其编辑到节点中。然后,您必须重新启动kubelet以使更改生效。
sudo systemctl restart kubelet(如果不起作用,请使用sudo reboot__重新启动节点)
/home/kubernetes/kubelet-config.yaml (也位于每个节点上)文件包含kubelet的配置。您可以创建新的resolv.conf文件,并使用resolvConf字段指向它。
apiVersion: kubelet.config.k8s.io/v1beta1
...
kind: KubeletConfiguration
...
resolvConf: 重要的:新配置只应用于更新后创建的荚。强烈建议在更改配置之前耗尽节点。
它能接受多个值吗?我定义了两个名称服务器。它们是作为单独的条目还是一个数组来给出?
Kubelet组态文档声明resolvConf是string类型,因此可能只接受单个值。
https://serverfault.com/questions/1081862
复制相似问题