docker - CoreDNS 无法在 Kubernetes 集群中运行

标签 docker kubernetes ubuntu-16.04 coredns

我正在尝试设置 Kubernetes 集群,但无法运行 CoreDNS。我运行了以下命令来启动集群:

sudo swapoff -a
sudo sysctl net.bridge.bridge-nf-call-iptables=1
sudo kubeadm init

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s- version=$(kubectl version | base64 | tr -d '\n')"
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

要使用 kubectl get pods --all-namespaces 检查 POD,我得到了

NAMESPACE     NAME                                    READY   STATUS             RESTARTS   AGE
kube-system   coredns-68fb79bcf6-6s5bp                0/1     CrashLoopBackOff   6          10m
kube-system   coredns-68fb79bcf6-hckxq                0/1     CrashLoopBackOff   6          10m
kube-system   etcd-myserver                           1/1     Running            0          79m
kube-system   kube-apiserver-myserver                 1/1     Running            0          79m
kube-system   kube-controller-manager-myserver        1/1     Running            0          79m
kube-system   kube-proxy-9ls64                        1/1     Running            0          80m
kube-system   kube-scheduler-myserver                 1/1     Running            0          79m
kube-system   kubernetes-dashboard-77fd78f978-tqt8m   1/1     Running            0          80m
kube-system   weave-net-zmhwg                         2/2     Running            0          80m

所以 CoreDNS 不断崩溃。我能找到的唯一错误消息来自 /var/log/syslog:

Oct  4 18:06:44 myserver kubelet[16397]: E1004 18:06:44.961409   16397 pod_workers.go:186] Error syncing pod c456a48b-c7c3-11e8-bf23-02426706c77f ("coredns-68fb79bcf6-6s5bp_kube-system(c456a48b-c7c3-11e8-bf23-02426706c77f)"), skipping: failed to "StartContainer" for "coredns" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=coredns pod=coredns-68fb79bcf6-6s5bp_kube-system(c456a48b-c7c3-11e8-bf23-02426706c77f)"

并来自 kubectl 日志 coredns-68fb79bcf6-6s5bp -n kube-system:

.:53
2018/10/04 11:04:55 [INFO] CoreDNS-1.2.2
2018/10/04 11:04:55 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/10/04 11:04:55 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
2018/10/04 11:04:55 [FATAL] plugin/loop: Seen "HINFO IN 3256902131464476443.1309143030470211725." more than twice, loop detected

我找到的一些解决方案是发布

kubectl -n kube-system get deployment coredns -o yaml | \
sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' | \
kubectl apply -f -

并修改 /etc/resolv.conf 以指向实际的 DNS,而不是 localhost,我也尝试过。

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#pods-in-runcontainererror-crashloopbackoff-or-error-state 中描述了该问题,我尝试了许多不同的 Pod 网络,但没有任何帮助。

我已经多次运行 sudo kubeadm reset && rm -rf ~/.kube/&& sudo kubeadm init

我正在运行 Ubuntu 16.04、Kubernetes 1.12 和 Docker 17.03。有什么想法吗?

最佳答案

我也有同样的问题。

我已经通过删除 coredns 厘米内的插件“循环”解决了这个问题。 但我不知道这个云是否有其他问题。

1、kubectl edit cm coredns -n kube-system

2、 delete ‘loop’ ,save and exit

3、重启coredns pods by:kubectl delete pod coredns.... -n kube-system

关于docker - CoreDNS 无法在 Kubernetes 集群中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645473/

相关文章:

docker - 在服务结构中参数化正在运行的docker镜像

docker - 如何从docker主机外部生产运行在容器内的kafka代理?

command-line-interface - 更新 dotnet-host Ubuntu 16.04 后出错

docker - ubuntu 16.04 上的 kubernetes

Linux mint 17 中的 Docker 错误

docker - 在 Windows 10 Pro 上更改 Docker native 镜像位置

kubernetes:无法更新端点警告

amazon-web-services - AWS 是否会限制 CPU 使用率?

Neo4J:命令失败:未设置初始密码,因为检测到实时 Neo4j 用户

amazon-web-services - 无法启动环境:应用程序版本不可用,无法与环境一起使用