我在kubernetes中设置了ubuntu 16.04。我正在使用kube版本1.13.1并使用weave进行网络连接。我已经使用初始化了集群:

sudo kubeadm init --token-ttl=0 --apiserver-advertise-address=192.168.88.142

并编织:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

所有的Pod似乎运行良好,但是coredns始终保持CrashLoopBackOff状态。我已经阅读了几乎所有可用的解决方案。
NAME                                READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-h5plc            0/1     CrashLoopBackOff   7          18m
coredns-86c58d9df4-l77rw            0/1     CrashLoopBackOff   7          18m
etcd-tx-g1-209                      1/1     Running            0          17m
kube-apiserver-tx-g1-209            1/1     Running            0          17m
kube-controller-manager-tx-g1-209   1/1     Running            0          17m
kube-proxy-2jdpp                    1/1     Running            0          18m
kube-scheduler-tx-g1-209            1/1     Running            0          17m
weave-net-npgnc                     2/2     Running            0          13m

我最初是通过编辑cordens文件并删除循环开始的。它解决了问题,但是后来我意识到我无法从容器内部ping www.google.com,但是能够ping google.com的IP地址。因此,删除循环不是一个完美的解决方案。

接下来,我尝试查看/etc/resolv.conf并找到以下内容:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search APSDC.local

这是kubernetes页面上提供的workaround,它表示应避免使用任何类型的IP地址(例如127.0.0.1)。我无法理解这一行,因为此文件是自动生成的。如何更改文件,以便coredns可以正常工作。贝洛是coredns的日志:
$ kubectl logs coredns-86c58d9df4-h5plc -n kube-system

.:53
2019-01-31T17:26:43.665Z [INFO] CoreDNS-1.2.6
2019-01-31T17:26:43.666Z [INFO] linux/amd64, go1.11.2, 756749c
CoreDNS-1.2.6
linux/amd64, go1.11.2, 756749c
[INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
[FATAL] plugin/loop: Forwarding loop detected in "." zone. Exiting. See https://coredns.io/plugins/loop#troubleshooting. Probe query: "HINFO 1423429973721138313.4523734933111484351.".

任何人都可以为我指出正确的方向,以解决此问题。请帮忙。谢谢

最佳答案

我已经解决了这个问题。就我而言,我的/etc/resolv.conf内容如下

nameserver     127.0.1.1

我首先使用以下命令来获取正确的IP,因为该设备位于客户端网络中。
nmcli device show <interfacename> | grep IP4.DNS

之后,我使用以下内容更新了文件/etc/resolvconf/resolv.conf.d/head
nameserver    192.168.66.21

然后运行以下命令以重新生成resolv.conf
sudo resolvconf -u

之后,我在/etc/resolv.conf中有以下内容:
nameserver    192.168.66.21
nameserver    127.0.1.1

然后,我删除了coredns pods ,一切正常。谢谢。

关于kubernetes - kubernetes中的coredns crashloopbackoff,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54466359/

10-16 08:45