背景
同事在k8s集群中的node3跑算法时候,把node3打崩了,导致kubelet服务不能正常运行和集群通信。
分析&解决
先将node节点打上不可调度标签,然后执行驱逐。
已经看到pod在其他节点创建出来的,但是node3上面的pod仍然处于terminating状态。
刚开始我以为是磁盘io仍然太高,导致它延迟,等同事的算法跑完,磁盘io掉下去之后,仍然处于terminating状态。
查看kubelet日志显示
“failed to activate service 'org.freedesktop.systemd1' timed out’”
systemd服务进程崩溃,sytemd是系统启动之后,进程号pid为1的进程,用来管理其他的进程。
尝试重启systemd进程
systemctl daemon-reexec
问题解决,pod被正常回收。kubelet日志正常
查看kubelet服务日志
journalctl -xeu kubelet
如果重启systemd不能解决的话,可以根据日志进一步排查问题,万能大法一般是重启。