由于centos7的内核是3.10.x 而k8s用到了kmem,在这个内核版本中kmem为测试功能,存在内存泄露问题。要解决这个问题最好的办法就是在部署k8snode节点时更新系统内核。
安装elrepo内核
# import the public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# install elrepo
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
#Depending on the package being installed or the repository setup, it might be necessary to disable non-elrepo repositories:
#yum --disablerepo=\* --enablerepo=elrepo install kmod-nvidia -y
#查看内核版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available --show-duplicates
#删除内核组件
yum remove kernel-devel kernel-tools-libs kernel-tools kernel-headers
#安装内核
yum --enablerepo=elrepo-kernel install -y kernel-ml.x86_64 #如果ml高内核有问题不稳定,可以使用lt版本
# yum --enablerepo=elrepo-kernel install -y kernel-lt.x86_64
更新grub
grub2-editenv list
grub2-set-default 0
grub2-mkconfig -o /etc/grub2.cfg
reboot
#删除内核
rpm -qa | grep kernel-3
#安装kernel组件
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel kernel-ml-tools kernel-ml-tools-libs kernel-ml-tools-libs-devel kernel-ml-headers
#yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-devel kernel-lt-tools kernel-lt-tools-libs kernel-lt-tools-libs-devel kernel-lt-headers
yum install -y compat-glibc compat-glibc-headers gcc gcc-c++ gcc-gfortran glibc-devel glibc-headers libquadmath-devel libtool systemtap systemtap-devel
grub2-editenv list
文档更新时间: 2022-02-14 13:50 作者:张尚