【k8s】k8s 虚拟机挂起,“coredns“Pod总是CreshLoopBackOff,循环重启,无法运行解决办法

问题描述

虚拟机挂起恢复后,corednsPod始终处于CreshLoopBackOff,如下图所示:
在这里插入图片描述

问题定位

首先对pod进行describe,并查看日志,查看节点状态。

kubectl describe po coredns-ff77c979f-f6qfb -n kube-system

【输出结果】可以看出Pod一直没有起来,存存活探针检验失败。在这里插入图片描述
接下来查看一下该Pod的日志

kubectl logs coredns-ff77c979f-f6qfb -n kube-system

【输出结果】可以看处443端口没有连接上,推测是apiserver没连接上。
在这里插入图片描述

kubectl get svc -A | grep 443

【输出结果】Pod的服务服务端口是443
在这里插入图片描述
查看kubernetes的svc的yaml文件

kubectl get svc kubernetes -o yaml

【输出结果】在这里插入图片描述
打印节点信息,发现各节点连接状况良好,均处于Ready状态。并且从windows命令行telnet 6443端口没有问题可以访问。
综合上述信息可以推断出网络插件flannel出问题。flannel的作用是Pod之间进行通信的插件,并进行node地址段分配。

【输出结果】flannel容器的日志信息
在这里插入图片描述
进一步证明,flannel网络出现问题。
注意:此处一定要打印node上的那个flannel Pod,因为之前的coredns报错是在node上的pod无法连接。
重启flannel,尝试重启虚拟网卡。结果flannel日志报错
在这里插入图片描述

解决方法

通过网上查阅资料,通过如下方法解决最稳妥。不需要重新安装flannel,也不需要重新启动集群。

  1. 删除node1上的flannel虚拟网卡设备
ip link delete flannel.1 
  1. 删除node1上对应的flannel容器
kubectl get po -o wide #查看node1对应的flannel pod
kubectl delete po kube-flannelxxx-xxxx -n kube-system #删除flannel Pod
  1. 等flannel Pod恢复后,删除节点对应的 coredns Pod,容器启动可能有些慢,原因是flannel容器网络服务可能尚未就绪,可重复delete操作,直至容器恢复。
kubectl delete po corednsxxx-xxxx -n kube-system

4.重复该步骤在master节点上,Crash容器即可恢复
在这里插入图片描述

问题解决!!!


PS:特别感谢管理员群友@戏子 的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值