首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CrashLoopBackOff中的Kubernetes CoreDNS

CrashLoopBackOff中的Kubernetes CoreDNS
EN

Stack Overflow用户
提问于 2018-11-30 22:19:12
回答 5查看 9.9K关注 0票数 7

我知道这个问题被问了十几次,但在网上搜索时没有任何帮助。

我的设置:

代码语言:javascript
复制
CentOS Linux release 7.5.1804 (Core)
Docker Version: 18.06.1-ce
Kubernetes: v1.12.3

由官方指南安装,此处为:https://www.techrepublic.com/article/how-to-install-a-kubernetes-cluster-on-centos-7/

CoreDNS pods处于Error/CrashLoopBackOff状态。

代码语言:javascript
复制
kube-system   coredns-576cbf47c7-8phwt                 0/1     CrashLoopBackOff   8          31m
kube-system   coredns-576cbf47c7-rn2qc                 0/1     CrashLoopBackOff   8          31m

我的/etc/resolv.conf:

代码语言:javascript
复制
nameserver 8.8.8.8

我还尝试使用本地dns解析器(路由器)

代码语言:javascript
复制
nameserver 10.10.10.1

设置和初始化:

代码语言:javascript
复制
kubeadm init --apiserver-advertise-address=10.10.10.3 --pod-network-cidr=192.168.1.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

我尝试用以下方法来解决这个问题:编辑核心: root@kub~]# kubectl edit cm coredns -n kube-system并更改

代码语言:javascript
复制
proxy . /etc/resolv.conf

直接转到

代码语言:javascript
复制
proxy . 10.10.10.1

或者代理。8.8.8.8

我也尝试过:

代码语言:javascript
复制
kubectl -n kube-system get deployment coredns -o yaml |   sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' |   kubectl apply -f -

但还是帮不了我。

日志中的错误:

代码语言:javascript
复制
plugin/loop: Seen "HINFO IN 7847735572277573283.2952120668710018229." more than twice, loop detected

另一个线程- coredns pods have CrashLoopBackOff or Error state根本没有帮助,因为我还没有找到那里描述的任何解决方案。什么都没有用。

EN

回答 5

Stack Overflow用户

发布于 2019-03-26 15:01:35

甚至我也遇到过这样的错误,我成功地通过以下步骤完成了工作。

但是,您错过了8.8.4.4

sudo nano /etc/resolv.conf

代码语言:javascript
复制
nameserver 8.8.8.8
nameserver 8.8.4.4

运行以下命令以重新启动后台进程和docker服务

代码语言:javascript
复制
sudo systemctl daemon-reload

sudo systemctl restart docker

如果您使用的是kubeadm,请确保从master中删除整个集群,然后重新配置集群。

代码语言:javascript
复制
kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node_name>
kubeadm reset

调配新群集后

代码语言:javascript
复制
kubectl get pods --all-namespaces

它应该提供低于预期的结果

代码语言:javascript
复制
NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
kube-system   calico-node-gldlr          2/2     Running   0          24s
kube-system   coredns-86c58d9df4-lpnj6   1/1     Running   0          40s
kube-system   coredns-86c58d9df4-xnb5r   1/1     Running   0          40s
kube-system   kube-proxy-kkb7b           1/1     Running   0          40s
kube-system   kube-scheduler-osboxes     1/1     Running   0          10s
票数 13
EN

Stack Overflow用户

发布于 2018-12-03 02:09:53

$kubectl编辑cm coredns -n kube-系统删除‘$kubectl’,保存并退出重启主节点。对我来说是工作。

票数 2
EN

Stack Overflow用户

发布于 2018-12-01 09:51:06

通常发生在coredns无法与kube-apiserver通信时:

检查您的kubernetes服务是否在默认名称空间中:

代码语言:javascript
复制
$ kubectl get svc kubernetes
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        130d

然后(您可能需要创建一个pod):

代码语言:javascript
复制
$ kubectl -n kube-system exec -it <any-pod-with-shell> sh
# ping kubernetes.default.svc.cluster.local
PING kubernetes.default.svc.cluster.local (10.96.0.1): 56 data bytes

另外,尝试从端口访问端口443

代码语言:javascript
复制
# telnet kubernetes.default.svc.cluster.local 443 # or
# curl kubernetes.default.svc.cluster.local:443
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53559291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档