故障一
故障现象
kubelet 启动不了,通过命令 journalctl -u kubelet
查看日志,报 Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup subsystems for cgroup [kubepods burstable]: failed to find subsystem mount for required subsystem: pids
故障分析
根据报错,有用的信息是 failed to find subsystem mount for required subsystem: pids
,通过命令 ls -l /sys/fs/cgroup/systemd/kubepods/burstable/
查看,该目录下没有 pids
目录。
SupportPodPidsLimit
在 kubernetes 1.14+
默认开启。 SupportNodePidsLimit 在 1.15+
默认开启。
相关Issues:https://github.com/kubernetes/kubernetes/issues/79046
解决方法
- 方法一:编辑 kubelet 配置文件,添加
--feature-gates=SupportPodPidsLimit=false,SupportNodePidsLimit=false
参数,后面在重启 kubelet 服务。 - 方法二:可以升级系统内核
5+
版本