某个早上,本人刚打开电脑测试就开始找上了我。啊!!!测试环境的k8s启动不了了!!!作为一个成天摸鱼哦不!!努力工作的小姑娘。本着助人为乐的原则,我决定要发挥一下我的作用~今天就要去测试环境给他搞好!!!
好了回到正题,首先第一步我们应该干啥?当然是确认k8s的状态。
1、查看k8s状态 systemctl status kubelet
看到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
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已经恢复正常了。