环境信息
Docker CE | v1.20.17 |
Runc | v1.6.3 |
Kubernetes | v1.18.20 |
问题描述
- 部分节点出现Pod启动并提示Runc的错误信息: 写入cgroup的cpu.cfs_period_us值1000失败
- 在节点通过docker run方式启动容器正常
- 在节点通过docker run --cpu-period=1000 运行容器出现相同的错误,最后得出结论是runc调用cgroup出现问题了
setting cgroup config for procHooks process causeed: failed to write '10000' : write /sys/fs/cgroup/cpu,cpuacct/kubepods/besteffort/pod-xxxx/ cpu.cfs_period_us
排查思路
- 检查操作系统内核和Docker参数有没有变更和修改,我是通过每天巡检节点的内核来排查,要是确实没有问题就进行下一步
- 节点是运行在虚拟机上面的话,需要从物理机层面或者VMWare看看有没有内存的异常和变动
- 从虚拟机层面告警发现很多台节点出现异常重启,跟主机运维联系后是物理机出现内存故障导致的,最终定位就是这个故障导致虚拟机的cgroup的配置参数写入失败
- 尝试重启虚拟机之后运行容器就可以了