Linux内核升级
一、准备工作
-
CentOS Linux release 7.6.1810 (Core)
(系统版本) -
3.10.0-957.el7.x86_64
(内核版本) -
kernel-ml-5.13.0-1.el7.elrepo.x86_64.rpm
(https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 下载自己所需的内核)
二、关于内核的一点小知识
2.1 内核版本
lt
:longterm
的缩写:长期维护版ml
:mainline
的缩写:最新稳定版
2.2 系统默认内核版本
Centos
:7.2以上的系统版本,内核默认情况下为3.10.x
;Ubuntu
:18版本的内核版本为3.10.x
, 2018年之后的Ubuntu18.04
内核默认版本为4.15.X
2.3 为什么要升级内核
内核版本4.9之前,容器可以随意修改内核参数(共用内核),4.9之后的版本,提高了安全性,容器内部不能修改内核参数。
-
4.9版本内核+docker19.03.X 安全问题大幅提升,网络组件使用cilium
-
5.3.x/5.4.x版本内核,BPF技术走向成熟,替换kube-proxy(低于5.3/5.4.x版本内核,不能替换)
-
5.8版本内核,增加可观察性,流量控制等,在L7层进行封包解包(内核中进行),大幅提升效率
三、升级内核
3.1 centos 在线升级
$ uname -r
# 默认的系统内核 3.10.0-327.el7.x86_64
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 载入公钥
$ yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 安装elrepo最新版本
$ yum list available --disablerepo=* --enablerepo=elrepo-kernel
# 列出可以使用的 kernel 包版本
$ yum -y install kernel-ml --enablerepo=elrepo-kernel
# 如果不指定版本信息,默认安装最新的
# 如果需要安装指定版本可以使用以下方式
$ yum -y install kernel-ml-5.13.0-1.el7.elrepo --enablerepo=elrepo-kernel
$ awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 查看当前系统可用内核版本
0 : CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-f36646e20ef14cf7b7c3d921839dd2b5) 7 (Core)
$ grub2-set-default 'CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)'
# 设置系统启动默认加载的内核
$ grub2-editenv list
# 查看系统默认加载的内核
saved_entry=CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)
$ reboot # 重启系统加载内核
$ uname -r # 确认系统已经加载了新的内核
5.13.0-1.el7.elrepo.x86_64
3.2 centos 离线升级
$ uname -r
# 默认的系统内核 3.10.0-327.el7.x86_64
$ wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-5.13.0-1.el7.elrepo.x86_64.rpm
# 提前获取对应的软件包
$ yum localinstall kernel-ml-5.13.0-1.el7.elrepo.x86_64.rpm -y
# 安装kernel软件包
$ awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 查看当前系统可用内核版本
0 : CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-f36646e20ef14cf7b7c3d921839dd2b5) 7 (Core)
$ grub2-set-default 'CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)'
# 设置系统启动默认加载的内核
$ grub2-editenv list
# 查看系统默认加载的内核
saved_entry=CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)
$ reboot # 重启系统加载内核
$ uname -r # 确认系统已经加载了新的内核
5.13.0-1.el7.elrepo.x86_64
*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************