Kubernetes 部署前内核升级

目录

[1. 查看当前内核](#1. 查看当前内核)

[1.1 查看内核版本](#1.1 查看内核版本)

[1.2 查看操作系统版本](#1.2 查看操作系统版本)

2.更新软件源

[2.1 导入ElRepo仓库公钥](#2.1 导入ElRepo仓库公钥)

[2.2 安装 ELRepo](#2.2 安装 ELRepo)

[3 升级内核](#3 升级内核)

[3.1 安装最新版内核](#3.1 安装最新版内核)

[3.2 查看当前系统已安装内核](#3.2 查看当前系统已安装内核)

[3.3 切换新内核启动](#3.3 切换新内核启动)

[3.4 重新配置内核参数](#3.4 重新配置内核参数)

[3.5 重启系统](#3.5 重启系统)

1. 查看当前内核

1.1 查看内核版本

bash 复制代码
[root@hecs-92531-0002 ~]# uname -r 
3.10.0-1160.53.1.el7.x86_64

1.2 查看操作系统版本

bash 复制代码
[root@hecs-92531-0002 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

2.更新软件源

2.1 导入ElRepo仓库公钥

bash 复制代码
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

ElRepo 是一个分发企业版Linux内核的社区仓库,在系统中导入ElRepo仓库的公钥,后续将从这个仓库中获取升级内核相关的资源。

2.2 安装 ELRepo

  • Centos 7 安装 ELRepo
bash 复制代码
yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
  • Centos 8 安装 ELRepo
bash 复制代码
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
  • Centos 9 安装 ElRepo
bash 复制代码
yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
  • 查看可用的稳定版镜像
bash 复制代码
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

输出信息是:

bash 复制代码
Available Packages
kernel-lt.x86_64                                                   5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-devel.x86_64                                             5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-doc.noarch                                               5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-headers.x86_64                                           5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools.x86_64                                             5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools-libs.x86_64                                        5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                  5.4.207-1.el7.elrepo                                  elrepo-kernel
kernel-ml.x86_64                                                   5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-devel.x86_64                                             5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-doc.noarch                                               5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-headers.x86_64                                           5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools.x86_64                                             5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools-libs.x86_64                                        5.18.14-1.el7.elrepo                                  elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                  5.18.14-1.el7.elrepo                                  elrepo-kernel
perf.x86_64                                                        5.18.14-1.el7.elrepo                                  elrepo-kernel
python-perf.x86_64                                                 5.18.14-1.el7.elrepo                                  elrepo-kernel

3 升级内核

3.1 安装最新版内核

  • 安装最新版内核
bash 复制代码
yum --enablerepo=elrepo-kernel install kernel-ml
  • 安装最新长期支持版内核(推荐)
bash 复制代码
yum --enablerepo=elrepo-kernel install -y kernel-lt

3.2 查看当前系统已安装内核

bash 复制代码
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

输出信息是:

bash 复制代码
0 : CentOS Linux (5.18.14-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.53.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-acca19161ce94d449c58923b12797030) 7 (Core)

3.3 切换新内核启动

修改 /etc/default/grub 文件,设置GRUB_DEFAULT的值为2.3.2中输出的最新版内核对应的序号。CentOS Linux (5.18.14-1.el7.elrepo.x86_64) 7 (Core) 前边的序号是0,所以设置GRUB_DEFAULT = 0 。

/etc/default/grub 修改前

  • /etc/default/grub 修改前
bash 复制代码
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="net.ifnames=0 consoleblank=600 console=tty0 console=ttyS0,115200n8 spectre_v2=off nopti crashkernel=auto spectre_v2=retpoline  "
GRUB_DISABLE_RECOVERY="true"
  • /etc/default/grub 修改后
bash 复制代码
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="net.ifnames=0 consoleblank=600 console=tty0 console=ttyS0,115200n8 spectre_v2=off nopti crashkernel=auto spectre_v2=retpoline  "
GRUB_DISABLE_RECOVERY="true"

3.4 重新配置内核参数

bash 复制代码
grub2-mkconfig -o /boot/grub2/grub.cfg

输出信息如下:

bash 复制代码
[root@hecs-92531-0002 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.18.14-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.18.14-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.53.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.53.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-acca19161ce94d449c58923b12797030
Found initrd image: /boot/initramfs-0-rescue-acca19161ce94d449c58923b12797030.img
done

3.5 重启系统

bash 复制代码
reboot

重启完成后,查看系统内核是否为最新版本

bash 复制代码
[root@hecs-92531-0002 ~]# uname -r
5.18.14-1.el7.elrepo.x86_64

从输出信息可见,系统内核已升级到最新版本 5.18.14. 安装kubernetes 1.24 版本,Linux Kernel 在 5.x 以上的版本即可满足需求。

说明:生产环境对软件版本和内核版本要求非常精确,别没事有事随便的进行yum update操作!!!!!!!!!

yum update:升级所有包同时也升级软件和系统内核

yum upgrade:只升级所有包,不升级软件和系统内核

测试样例:

一、升级前

bash 复制代码
系统版本: centos5.5
内核版本: 2.6.18-194.el5

二、yum upgrade 升级后,只升级所有包,不升级软件和系统内核

bash 复制代码
系统版本: centos5.7
内核版本: 2.6.18-194.el5

三、yum update 升级后,升级所有包同时也升级软件和系统内核

bash 复制代码
系统版本: centos5.7
内核版本: 2.6.18-238.el5
相关推荐
DD_陈东东15 分钟前
gdbus 常用数据结构与库函数
linux
DIY机器人工房1 小时前
代码详细注释:ARM-Linux字符设备驱动开发案例:LCD汉字输出改进建议开发板断电重启还能显示汉字,显示汉字位置自定义
linux·嵌入式·文件io·diy机器人工房
网硕互联的小客服2 小时前
服务器经常出现蓝屏是什么原因导致的?如何排查和修复?
运维·服务器·stm32·单片机·网络安全
witton2 小时前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
成都极云科技2 小时前
成都算力租赁新趋势:H20 八卡服务器如何重塑 AI 产业格局?
大数据·服务器·人工智能·云计算·gpu算力
喜欢吃豆2 小时前
从零构建MCP服务器:FastMCP实战指南
运维·服务器·人工智能·python·大模型·mcp
刘阿宾2 小时前
【华为昇腾|CUDA】服务器A6000显卡部署LLM实战记录
服务器·华为·语言模型·gpu算力·kylin
海外空间恒创科技2 小时前
恒创科技:香港站群服务器做seo站群优化效果如何
运维·服务器·科技
得物技术2 小时前
eBPF 助力 NAS 分钟级别 Pod 实例溯源|得物技术
linux
搬码临时工2 小时前
内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
运维·服务器·ssh