当kubectl describe pod,发现有 cannot allocate memory的错误信息,POD一直处于ContatinerCreating状态。只有重启对应的服务器,才可以增加pod,异常提示才会消失。但继续随着时间的推移,pod的增多,该问题会继续出现。
参考下面文章的方案,有三种方式,分别是升级linux内核、重新编译K8S源码和修改虚拟机grub设置。
https://blog.csdn.net/qq_39382769/article/details/124812543
下面介绍的是修改grub的方式,此方式不是所有机器都能生效,有些机器不生效
修改/etc/default/grub,在GRUB_CMDLINE_LINUX中添加cgroup.memory=nokmem
,以下为完整的文件
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet cgroup.memory=nokmem"
GRUB_DISABLE_RECOVERY="true"
生成配置:
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
重启机器:
reboot