为什么要升级内核?
由于Docker 在CentOS系统中需要安装在 CentOS 7 64 位的平台,并且内核版本不低于 3.10;CentOS 7.× 满足要求的最低内核版本要求,但由于 CentOS 7默认内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。所以建议大家升级到最新的稳定内核版本。
今天k8s集群服务器突然出现这个警告错误,网上查了一下,建议升级内核版本
kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1
在线升级
1. 查看当前内核版本
$ uname -sr
Linux 3.10.0-693.2.2.el7.x86_64
2. 更新内核
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
执行结果
3.安装内核
yum --enablerepo=elrepo-kernel install kernel-ml -y
4. 设置默认启动项
使 GRUB_DEFAULT=0
vim /etc/default/grub
5. 重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
6. 重启并查看内核版本
reboot
查看内核版本:
$ uname -sr
Linux 5.4.6-1.el7.elrepo.x86_64
升级完成
离线升级
1. 获取内核rpm包,拷贝到需要升级的服务器,并安装
rpm包地址: https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 2
rpm -ivh kernel-ml-5.7.0-1.el7.elrepo.x86_64.rpm
2. 设置默认启动项
使 GRUB_DEFAULT=0
vim /etc/default/grub
3. 重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
4. 重启并查看内核版本
reboot
查看内核版本:
$ uname -sr
Linux 5.7.0-1.el7.elrepo.x86_64
升级完成