kubeedge关于cgroup挂载子系统问题

72 阅读1分钟

问题

在参与某项目的过程中,发现kubeedge启动出现了问题,日志中提示cgroup中的memory没有。

分析

这个时候看了一下cgroup挂载,发现还真是

cat /proc/mounts | grep cgroup

按照网上百度的攻略试升级内核+改grub配置,发现解决不了问题。

解决

找厂家咨询了一下这个问题,其实已经指明了,系统在最开始编译的时候,这部分没有带上。

接下来使用厂家提供的Ubuntu源码重新编译一个新的镜像进行烧录,果然就好了。

#在内核开启这两个选项就行
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y

总结

不管是docker还是kubeedge使用的都是使用cgroup+namespace来实现容器的资源隔离和进程隔离,能够限制它们对系统资源的使用。因此在使用前最好先提前排查一下,烧录完新系统后还得重新部署环境...