cgroup统计资源异常导致kubelet驱逐Pod
故障现象
ARM架构节点上,cgroup统计资源异常导致kubelet驱逐Pod,节点无法正常使用。
kubelet一直在驱逐pod,把容器全终止之后还是认为内存不足。
此时实际资源使用正常。
查看/sys/fs/cgroup/memory目录下cgroup的usage_in_bytes统计值有问题,与实际不符。
# cd /sys/fs/cgroup/memory # cat memory.usage_in_bytes 17618837504
问题根因
ARM架构节点的EulerOS 2.8和EulerOS 2.9操作系统内核存在Bug,会触发kubelet驱逐Pod导致业务不可用。
该问题在以下版本中已被修复:
- EulerOS 2.8:内核版本kernel-4.19.36-vhulk1907.1.0.h1252.eulerosv2r8.aarch64
- EulerOS 2.9:内核版本kernel-4.19.90-vhulk2103.1.0.h819.eulerosv2r9.aarch64
解决方法
- 若您的集群版本为1.19.16-r0、1.21.7-r0、1.23.5-r0、1.25.1-r0及以上,请将节点重置为最新版本的操作系统即可修复该问题。
- 若您的集群版本不满足要求,请将集群升级到上述指定的版本后,再将节点重置为最新版本的操作系统。