
# 低版本内核的CentOS节点反复创删应用时偶现cgroup kmem泄露问题
#### 故障现象
CentOS 7.6节点内核低于3.10.0-1062.12.1.el7.x86_64的场景下（主要为1.17.9版本集群），反复创建应用时出现cgroup kmem泄露，导致节点内存有空余，但是无法创建新的Pod，并提示报错Cannot allocate memory。
#### 问题根因
在反复创建应用时会创建的临时memory cgroup，但在应用删除时，内核已经删除了 cgroup （/sys/fs/cgroup/memory下对应的cgroup目录已经删除）， 但在内核中没有释放cssid，导致内核认为的cgroup的数量实际数量不一致，残留的cgroup达到节点上限后，导致该节点无法继续新建Pod。
#### 解决方法
- 该问题可以通过可以在内核层全局使用 "cgroup.memory=nokmem" 参数关闭kmem使用防止发生泄漏。
- 1.17集群版本已停止维护，修复该问题建议升级至1.19及以上集群版本，并通过节点重置为最新版本的操作系统修复该问题，确保内核版本高于3.10.0-1062.12.1.el7.x86_64。
 
