一次k8s启动失败排查过程

3,674 阅读1分钟

某个早上,本人刚打开电脑测试就开始找上了我。啊!!!测试环境的k8s启动不了了!!!作为一个成天摸鱼哦不!!努力工作的小姑娘。本着助人为乐的原则,我决定要发挥一下我的作用~今天就要去测试环境给他搞好!!!

好了回到正题,首先第一步我们应该干啥?当然是确认k8s的状态。

1、查看k8s状态 systemctl status kubelet

7f5282104f8e534426fae52c86e1525.png

如图所示可以看到k8s确实是启动失败了,但是这里并没有什么关键信息能让我们知道启动失败的原因。

2、查看k8s日志 journalctl -xefu kubelet

  日志有一大堆但是关键信息就这一句~kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs" 大概意思就是kubelet cgroup driver跟docker cgroup driver的值不一致导致的启动失败。知道了原因就好办了。

解决方案:

1、查看k8s cgroup cat /var/lib/kubelet/kubeadm-flags.env

image.png

2、查看docker cgroup  docker info

在这里插入图片描述

3、编辑kubeadm-flags.env的cgroup值 修改为docker一样的值
vi /var/lib/kubelet/kubeadm-flags.env

4、刷新配置再重启
systemctl daemon-reload
systemctl restart kubelet

5、再次验证k8s状态
在这里插入图片描述
如图所示可以看到k8s已经成功启动。我们可以再执行一下kubectl命令验证k8s是否正常工作

查看pod: kubectl get po :

可以看到k8s已经恢复正常了