k8s重启节点状态NotReady
确认是coredns容器出现问题,发现CoreDNS 状态是CrashLoopBackOff。,subnet.env文件为子节点启动时需要的文件,报错信息可能是子节点上报错信息缺失导致。很明显可以看出是coredns容器出了问题,coredns无法启动。主节点上执行复制指令,将文件复制到子节点。主节点存在该文件,子节点不存在。查看出错容器具体报错信息日志。......
·
问题分析
每次集群启动时查看节点状态都是NotReady,虽然可以通过这个方法处理解决k8s的coredns一直处于的crashloopbackoff问题,但是指标不治本,每次重启都会出现这个问题所以特地追究了一下原因
问题分析
查看k8s的日志
很明显可以看出是coredns容器出了问题,coredns无法启动
sudo journalctl -f -u kubelet
查看系统中的容器运行情况
确认是coredns容器出现问题,发现CoreDNS 状态是CrashLoopBackOff
kubectl get pod -A
查看详细信息
查看出错容器具体报错信息日志
kubectl describe -n kube-system pod/coredns-5c98db65d4-wcnd6
报错信息截图
主要报错为network: open /run/flannel/subnet.env: no such file or directory
,subnet.env文件为子节点启动时需要的文件,报错信息可能是子节点上报错信息缺失导致
查看主、子节点文件情况
主节点存在该文件,子节点不存在
解决问题
参考:我的 Windows Pod 无法启动,因为缺少 /run/flannel/subnet.env
知道问题什么原因解决就很简单了,将主节点的/run/flannel/subnet.env
文件复制到子节点就可以了。由于子节点没有目录,所以需要在子节点创建目录
子节点创建文件目录
mkdir -p /run/flannel/
主节点上执行复制指令,将文件复制到子节点
scp -r /run/flannel/subnet.env root@k8s-node01:/run/flannel/
scp -r /run/flannel/subnet.env root@k8s-node02:/run/flannel/
最后重启项目,问题解决
余生还长,切勿惆怅
更多推荐
已为社区贡献1条内容
所有评论(0)