Kubernetes 库伯内特斯的coredns crashloopbackoff

Kubernetes 库伯内特斯的coredns crashloopbackoff,kubernetes,dns,Kubernetes,Dns,我已经在ubuntu 16.04中安装了kubernetes。我正在使用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

我已经在ubuntu 16.04中安装了kubernetes。我正在使用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')"
所有吊舱似乎都运行良好,但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页面上提供的,它说应该避免使用任何类型的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的内容

sudo resolvconf -u
我首先使用下面的命令获取正确的IP,因为设备位于客户端的网络中

nmcli device show <interfacename> | grep IP4.DNS
然后运行下面的命令重新生成resolv.conf

sudo resolvconf -u
在此之后,我在/etc/resolv.conf中有以下内容:


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

我已经解决了这个问题。在我的例子中,我有以下/etc/resolv.conf的内容

sudo resolvconf -u
我首先使用下面的命令获取正确的IP,因为设备位于客户端的网络中

nmcli device show <interfacename> | grep IP4.DNS
然后运行下面的命令重新生成resolv.conf

sudo resolvconf -u
在此之后,我在/etc/resolv.conf中有以下内容:

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

我在ubuntu 16.04中遇到了同样的问题。My/etc/resolv.conf也指向环回地址。我第一次尝试作为S Andrew手动更改resolv.conf文件,但没有任何运气

就我而言,我已经解决了禁用dnsmasq的问题。 在/etc/NetworkManager/NetworkManager.conf中,对[main]部分的以下行进行注释:

[main]
#dns=dnsmasq
Dnsmasq使指定用于给定域的名称服务器变得简单,但会自动设置环回地址,这会使coredns崩溃

在此之后,/etc/resolv.conf文件指向我的ISP提供的DNS服务器。

我在ubuntu 16.04中遇到了同样的问题。My/etc/resolv.conf也指向环回地址。我第一次尝试作为S Andrew手动更改resolv.conf文件,但没有任何运气

就我而言,我已经解决了禁用dnsmasq的问题。 在/etc/NetworkManager/NetworkManager.conf中,对[main]部分的以下行进行注释:

[main]
#dns=dnsmasq
Dnsmasq使指定用于给定域的名称服务器变得简单,但会自动设置环回地址,这会使coredns崩溃


在此之后,/etc/resolv.conf文件指向ISP提供的DNS服务器。

此解决方案应该是最好的,但它不适合我。我更改了configmap/coredns,以直接指向我的上游解析器。看看这个,这个解决方案应该是最好的,但它对我不起作用。我更改了configmap/coredns,以直接指向我的上游解析器。看到这个了吗