Docker對Linux內核版本的最低要求是3.10。目前Linux內核已經發布到 5.4,爲了更好使用docker和k8s,需要對公司相關CentOS 7內核進行升級。
下載公鑰
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝elrepo repo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
倉庫啓用後,列出可用的內核相關包:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
查詢所有kernel包
rpm -qa|grep kernel
kernel-devel-3.10.0-862.6.3.el7.x86_64
kernel-tools-libs-3.10.0-862.6.3.el7.x86_64
kernel-tools-3.10.0-862.6.3.el7.x86_64
kernel-devel-3.10.0-862.el7.x86_64
abrt-addon-kerneloops-2.1.11-50.el7.centos.x86_64
kernel-3.10.0-862.6.3.el7.x86_64
kernel-headers-3.10.0-862.6.3.el7.x86_64
根據上述查詢結果,刪除所有舊內核相關包
yum remove kernel-devel kernel-tools-libs kernel-tools kernel-headers
卸載上述軟件包會連帶卸載以下安裝包需要更新後,重新安裝。kernel-devel會連帶刪除systemtap和systemtap-devel。kernel-headers則和下面都有關係。
compat-glibc x86_64 1:2.12-4.el7.centos
compat-glibc-headers x86_64 1:2.12-4.el7.centos
gcc x86_64 4.8.5-28.el7_5.1
gcc-c++x86_64 4.8.5-28.el7_5.1
gcc-gfortran x86_64 4.8.5-28.el7_5.1
glibc-develx86_64 2.17-222.el7
glibc-headers x86_64 2.17-222.el7
libquadmath-devel x86_64 4.8.5-28.el7_5.1
libtool x86_64 2.4.2-22.el7_3
systemtap x86_64 3.2-8.el7_5
systemtap-develx86_64 3.2-8.el7_5
安裝新內核
yum --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
安裝新內核相關軟件
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
查看默認內核
grub2-editenv list
將新內核設爲默認grbu啓動項
grub2-set-default 0
生成 grub 配置文件
grub2-mkconfig -o /etc/grub2.cfg
reboot #不重啓也可以
刪除舊內核
yum remove kernel-3.10.0-862.6.3.el7.x86_64
安裝更新舊內核時被卸載的軟件
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
saved_entry=CentOS Linux (5.4.8-1.el7.elrepo.x86_64) 7 (Core)