由于centos7的内核是3.10.x 而k8s用到了kmem,在这个内核版本中kmem为测试功能,存在内存泄露问题。要解决这个问题最好的办法就是在部署k8snode节点时更新系统内核。

安装elrepo内核

  1. # import the public key
  2. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  3. # install elrepo
  4. yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
  5. #Depending on the package being installed or the repository setup, it might be necessary to disable non-elrepo repositories:
  6. #yum --disablerepo=\* --enablerepo=elrepo install kmod-nvidia -y
  1. #查看内核版本
  2. yum --disablerepo="*" --enablerepo="elrepo-kernel" list available --show-duplicates
  3. #删除内核组件
  4. yum remove kernel-devel kernel-tools-libs kernel-tools kernel-headers
  5. #安装内核
  6. yum --enablerepo=elrepo-kernel install -y kernel-ml.x86_64 #如果ml高内核有问题不稳定,可以使用lt版本
  7. # yum --enablerepo=elrepo-kernel install -y kernel-lt.x86_64
  1. 更新grub
  2. grub2-editenv list
  3. grub2-set-default 0
  4. grub2-mkconfig -o /etc/grub2.cfg
  5. reboot
  1. #删除内核
  2. rpm -qa | grep kernel-3
  1. #安装kernel组件
  2. 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
  3. #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
  4. yum install -y compat-glibc compat-glibc-headers gcc gcc-c++ gcc-gfortran glibc-devel glibc-headers libquadmath-devel libtool systemtap systemtap-devel
  1. grub2-editenv list
文档更新时间: 2022-02-14 13:50   作者:张尚