我正在尝试设置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 logs 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 Networks,但没有帮助。
我已经多次运行
sudo kubeadm reset && rm -rf ~/.kube/ && sudo kubeadm init
。我正在运行Ubuntu 16.04,Kubernetes 1.12和Docker 17.03。有任何想法吗?
最佳答案
我也有同样的问题。
我已经通过删除coredns cm内的“loop”插件解决了该问题。
但我不知道这云是否还有其他问题。
1,kubectl编辑cm coredns -n kube-system
2,delete ‘loop’ ,save and exit
3,通过以下方式重新启动coredns pod:kubectl delete pod coredns.... -n kube-system
关于docker - CoreDNS无法在Kubernetes集群中运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52645473/