Docker runc创建容器出现write cgroup cpu.cfs_period_us错误

环境信息

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

 排查思路

  1. 检查操作系统内核和Docker参数有没有变更和修改,我是通过每天巡检节点的内核来排查,要是确实没有问题就进行下一步
  2. 节点是运行在虚拟机上面的话,需要从物理机层面或者VMWare看看有没有内存的异常和变动
  3. 从虚拟机层面告警发现很多台节点出现异常重启,跟主机运维联系后是物理机出现内存故障导致的,最终定位就是这个故障导致虚拟机的cgroup的配置参数写入失败
  4. 尝试重启虚拟机之后运行容器就可以了

你可能感兴趣的:(docker,运维,kubernetes)