CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定
我们使用ELRepo做内核升级,这是用于Enterprise Linux软件包的RPM存储库。ELRepo支持Red Hat Enterprise Linux(RHEL)及其衍生版本(Scientific Linux,CentOS等)。
ELRepo项目专注于与硬件相关的软件包,以增强您使用Enterprise Linux的体验。这包括文件系统驱动程序,图形驱动程序,网络驱动程序,声音驱动程序,网络摄像头和视频驱动程序。
安装yum源
导入公钥:
[root@localhost yum.repos.d]# rpm --import /RPM-GPG-KEY-
服务器没有联网的情况下,可以把公钥文件下载下来,传到服务器上执行
[root@localhost yum.repos.d]# rpm --import RPM-GPG-KEY-[root@localhost yum.repos.d]# cat /etc/pki/rpm-gpg/RPM-GPG-KEY- -----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.4.5 (GNU/Linux)mQGiBEm+/6QRBAC5mbtqOFSQ0FkTLIMdIoqxtraIeUqwbPp3IBYQ/u/EREjyEf1DqFyBEXII0dD8JDT85vRZ81jhB7nFWa0VbUfY0xfghkbnokiNBVNpiQcvszw3UYDFaLAaOC8Z98vmlsQaBBTQG6704ZXLr7FJyG3GP5WE6egXIQQbrMcdmCoRBwCg/dwCHLWjuemoDc5SX7hKHbB4zZ8D/jP+oMbqz+bDn8OZ2UuaGdxr+mHW8tzTdPjnEU8ehUt1ws8eBqn/gMfKvUBa8xFSILe8Ty99u+VjFbcRsdf0H6dRre9AdDVUz5oxzoPwgamA8mhPQvFh3wt9smtRUh5IoM2LiM1s5pGMLuYuvSnVUPArEnSfW6K5I6v7OarU3WfrBACDEGGcaWKjfdkRtmKIQrzu6AnldVC1ISLVAoqxHnKNFTk1BgO0PSZDpfJIx8fMCnGlusoL6F5+LYEk4K4B0zvlj1ur3JocjxpuBLccl94JTo/+I9ZbS8ptUqLwLBUkgIQJzzIH4G5NZsQ3FpzSWGRFVa7etqTv9BfUMUmJxhEoobQ/ZWxyZXBvLm9yZyAoUlBNIFNpZ25pbmcgS2V5IGZvciBlbHJlcG8ub3JnKSA8c2VjdXJlQGVscmVwby5vcmc+iGAEExECACAFAkm+/6QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAwm8MFuq2uUlgWAKCGWOpyodbzxS7Xy/0X9m9qVnHq+ACfUHrQzYAtFRpT07SggiosE+mvAKu5Ag0ESb7/pxAIALgT0q0HhwugE717a7N+gAtCbFu8pCXOZcrAnJpGcMA9VWmsODZStPTxXYM2ggCMSzUnNis8pPZOPIP5C+t2IYtVjLshM4C9UiY7u5ETjErWCxWmF+2QLO50K56E4qxj0wufZt9P+Ih0USUM5L2oyrQG51uj/2v3Qq3igc8ZNTtmEOfis3losusQbAfZtTBmNQ0570kkhMxiyavgAUxLenXHYrkDJFuL7XdBCmnakykTn2dzU81rIDZ+QPxII4V/eZ5xGiRY/EDUIAysEV2m0NNZgWi/twUnZICm7zYpVRviJrBnFTvNEPMhiGRnJgQp/Krv4WIHQ67N8lQg3q5RJX8AAwUH/0UBjBgbsuWRdB+ZYWjKPBy+bJY/6HefPUuLrt3QDNINMW8kY7VzWRMWyGc4IlPJDW0nwOn/vT5HDgc3YmA3tm7cKj5wpFijzff61Db8eq+CUKGscKxDBGzHq6oirM5U7DQLmipCs5EbefwHIjE3aOUSnoQmniEnBWI2hm/rftmY9oJSi8xgns4wAokDPiMcucADtbV3fznxppuowtBi8bcGB1vJZjTySQcSKWv+IVp5ej06uZ9501BEm6HxUZkuAGPecP65kcQu5bg7B7LQeI5AWyujqvfuWgAF34xhl9QU/sDWxM3wUog+bw7y8pyWCqnJhp70yx8oSqzhFygT62eISQQYEQIACQUCSb7/pwIbDAAKCRAwm8MFuq2uUq8PAKC1+E2pSwiSoHXkKYPYDwApsP1mVACfRe1YnggLYQtG9LMeweVQQC77rK8==qyRr-----END PGP PUBLIC KEY BLOCK-----
安装ELRepo Yum源
系统版本 RHEL-8 or CentOS-8 请安装yum install /elrepo-release-8.el8.elrepo.noarch.rpm
系统版本 RHEL-7, SL-7 or CentOS-7 请安装
yum install /elrepo-release-7.el7.elrepo.noarch.rpm
安装Linux内核
查找可供安装的内核版本
[root@localhost yum.repos.d]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*已加载插件:fastestmirrorLoading mirror speeds from cached hostfile* elrepo-kernel: mirrors.tuna.已安装的软件包kernel.x86_64 3.10.0-1160.el7 @anacondakernel-headers.x86_64 3.10.0-1160.15.2.el7 @updateskernel-lt.x86_64 5.4.109-1.el7.elrepo @elrepo-kernelkernel-tools.x86_643.10.0-1160.el7 @anacondakernel-tools-libs.x86_64 3.10.0-1160.el7 @anaconda可安装的软件包kernel-lt.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.110-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 5.11.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 5.11.12-1.el7.elrepo elrepo-kernel
这里的kernel-lt,kernel-ml解释一下
kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。
不联网离线的情况下,找一台能上网上服务器,或者本地安装虚拟机下载离线安装包
下载地址:/linux/kernel/
[root@localhost ~]# wget /linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm---04-09 18:56:54-- /linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm正在解析主机 ()... 69.195.83.87正在连接 ()|69.195.83.87|:443... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:52405420 (50M)正在保存至: “kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm”100%[=====================================================================================================================================================>] 52,405,420 4.87MB/s 用时 31s -04-09 18:57:25 (1.63 MB/s) - 已保存 “kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm” [52405420/52405420])[root@localhost ~]#
安装内核
[root@localhost yum.repos.d]# yum --enablerepo=elrepo-kernel install -y kernel-lt已加载插件:fastestmirrorLoading mirror speeds from cached hostfile* elrepo: mirrors.* elrepo-kernel: mirrors.file:///yumrepo/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /yumrepo/repodata/repomd.xml"正在尝试其它镜像。正在解决依赖关系--> 正在检查事务---> 软件包 kernel-lt.x86_64.0.5.4.110-1.el7.elrepo 将被 安装--> 解决依赖关系完成依赖关系解决===============================================================================================================================================================================================Package架构版本源大小===============================================================================================================================================================================================正在安装:kernel-lt x86_64 5.4.110-1.el7.elrepo elrepo-kernel50 M事务概要===============================================================================================================================================================================================安装 1 软件包总下载量:50 M安装大小:227 MDownloading packages:kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm | 50 MB 00:00:44Running transaction checkRunning transaction testTransaction test succeededRunning transaction警告:RPM 数据库已被非 yum 程序修改。正在安装 : kernel-lt-5.4.110-1.el7.elrepo.x86_64 1/1 验证中: kernel-lt-5.4.110-1.el7.elrepo.x86_64 1/1 已安装:kernel-lt.x86_64 0:5.4.110-1.el7.elrepo完毕![root@localhost yum.repos.d]#
上面下载好了安装包,也可以离线安装
[root@localhost ~]# yum localinstall kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm 已加载插件:fastestmirror, product-id, search-disabled-repos正在检查 kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm: kernel-lt-5.4.110-1.el7.elrepo.x86_64kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm 将被安装正在解决依赖关系--> 正在检查事务---> 软件包 kernel-lt.x86_64.0.5.4.110-1.el7.elrepo 将被 安装--> 解决依赖关系完成依赖关系解决===============================================================================================================================================================================================Package 架构 版本源 大小===============================================================================================================================================================================================正在安装:kernel-lt x86_64 5.4.110-1.el7.elrepo/kernel-lt-5.4.110-1.el7.elrepo.x86_64 227 M事务概要===============================================================================================================================================================================================安装 1 软件包总计:227 M安装大小:227 MIs this ok [y/d/N]: yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction正在安装 : kernel-lt-5.4.110-1.el7.elrepo.x86_64 1/1 验证中: kernel-lt-5.4.110-1.el7.elrepo.x86_64 1/1 已安装:kernel-lt.x86_64 0:5.4.110-1.el7.elrepo完毕!
检查内核是否已安装
[root@localhost ~]# grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)CentOS Linux (5.4.109-1.el7.elrepo.x86_64) 7 (Core)CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)CentOS Linux (0-rescue-002e2c6979394d74a83b99811a2280c1) 7 (Core)
参考上面配置kernel-lt-5.4.110-1已经成功安装
设置系统内核默认启动项
查看系统内核默认启动项
[root@localhost ~]# grub2-editenv listsaved_entry=CentOS Linux (5.4.109-1.el7.elrepo.x86_64) 7 (Core)
修改系统内核启动项
[root@localhost ~]# grub2-set-default 'CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)'[root@localhost ~]# grub2-editenv listsaved_entry=CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)
参考上面输出内容 此时,操作系统使用的内核已升级为5.4.110-1.el7.elrepo.x86_64
最后一步,需要将内核工具包一并升级
删除旧版本工具包
[root@localhost ~]# yum remove kernel-tools-libs已加载插件:fastestmirror正在解决依赖关系--> 正在检查事务---> 软件包 kernel-tools-libs.x86_64.0.3.10.0-1160.el7 将被 删除--> 正在处理依赖关系 kernel-tools-libs = 3.10.0-1160.el7,它被软件包 kernel-tools-3.10.0-1160.el7.x86_64 需要--> 正在处理依赖关系 libcpupower.so.0()(64bit),它被软件包 kernel-tools-3.10.0-1160.el7.x86_64 需要--> 正在检查事务---> 软件包 kernel-tools.x86_64.0.3.10.0-1160.el7 将被 删除--> 解决依赖关系完成依赖关系解决===============================================================================================================================================================================================Package 架构版本源 大小===============================================================================================================================================================================================正在删除:kernel-tools-libs x86_64 3.10.0-1160.el7@anaconda18 k为依赖而移除:kernel-tools x86_64 3.10.0-1160.el7@anaconda 337 k事务概要===============================================================================================================================================================================================移除 1 软件包 (+1 依赖软件包)安装大小:355 k是否继续?[y/N]:yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction正在删除 : kernel-tools-3.10.0-1160.el7.x86_641/2 正在删除 : kernel-tools-libs-3.10.0-1160.el7.x86_64 2/2 验证中: kernel-tools-3.10.0-1160.el7.x86_641/2 验证中: kernel-tools-libs-3.10.0-1160.el7.x86_64 2/2 删除:kernel-tools-libs.x86_64 0:3.10.0-1160.el7 作为依赖被删除:kernel-tools.x86_64 0:3.10.0-1160.el7 完毕![root@localhost ~]#
安装新版本工具包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools已加载插件:fastestmirrorLoading mirror speeds from cached hostfile* elrepo-kernel: mirror-正在解决依赖关系--> 正在检查事务---> 软件包 kernel-lt-tools.x86_64.0.5.4.110-1.el7.elrepo 将被 安装--> 正在处理依赖关系 kernel-lt-tools-libs = 5.4.110-1.el7.elrepo,它被软件包 kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 需要--> 正在处理依赖关系 libcpupower.so.0()(64bit),它被软件包 kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 需要--> 正在检查事务---> 软件包 kernel-lt-tools-libs.x86_64.0.5.4.110-1.el7.elrepo 将被 安装--> 解决依赖关系完成依赖关系解决===============================================================================================================================================================================================Package 架构 版本 源 大小===============================================================================================================================================================================================正在安装:kernel-lt-toolsx86_64 5.4.110-1.el7.elrepo elrepo-kernel 202 k为依赖而安装:kernel-lt-tools-libs x86_64 5.4.110-1.el7.elrepo elrepo-kernel 91 k事务概要===============================================================================================================================================================================================安装 1 软件包 (+1 依赖软件包)总下载量:293 k安装大小:486 kDownloading packages:(1/2): kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64.rpm | 202 kB 00:00:00(2/2): kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64.rpm | 91 kB 00:00:00-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------总计312 kB/s | 293 kB 00:00:00Running transaction checkRunning transaction testTransaction test succeededRunning transaction正在安装 : kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64 1/2 正在安装 : kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 2/2 验证中: kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 1/2 验证中: kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64 2/2 已安装:kernel-lt-tools.x86_64 0:5.4.110-1.el7.elrepo 作为依赖被安装:kernel-lt-tools-libs.x86_64 0:5.4.110-1.el7.elrepo 完毕!
重启,选择新版本内核进入系统
查看内核版本
[root@localhost ~]# grub2-editenv listsaved_entry=CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)
已上就是升级内核版本过程,觉得有用就给个赞吧
本人博客 欢迎来访!
原文链接