故障一
故障现象
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+版本


