-bash: fork: Cannot allocate memory

前言

服务器阿里云ECS_centos7.9

环境:k8s自建v1.19.4

用了一段时间总会有节点出现内存泄漏问题 报错如上

解决方案

1.修改内核参数

vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 intel_pstate=disable cgroup.memory=nokmem"
#生成配置:
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

2.编译runc和kubelet 参考

3.直接升级内核(楼主采用此方案,机器较多,记得升级前先把node禁止调度和排空pod)

#国外维护kernel源
cat > /etc/yum.repos.d/linnux-kernel.repo <<EOF
[kernel-longterm-4.19]
name=kernel-longterm-4.19
baseurl=https://copr-be.cloud.fedoraproject.org/results/kwizart/kernel-longterm-4.19/epel-7-x86_64/
enabled=1
gpgcheck=0
EOF
yum install  -y kernel-longterm kernel-longterm-devel kernel-longterm-modules-extra