欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

k8s出现网络问题,升级centos7内核解决

程序员文章站 2022-07-14 09:27:45
...

1.因为k8s和centos7内核版本的问题,导致机器经常出现网络一直重启的问题,当时的处理方式是重启机器,就能临时解决问题,但是反反复复会偶尔出现。后面判断应该是centos7内核版本问题,所以决定升级centos7内核版本(由于当时紧急处理,忘记截图出现问题的现象)

我们的机器centos7 发行版为7.8 内核为3.10.0-1127.13.1.el7.x86_64,升级后内核版本为5.7.9-1.el7.elrepo.x86_64

下面说下升级内核版本的过程,以及踩的坑

#检查当前 CentOS 系统版本
cat /etc/redhat-release
 
> CentOS Linux release 7.1.1503 (Core)

检查当前 CentOS 系统内核版本
 uname -sr
 Linux 3.10.0-1127.13.1.el7.x86_64

运行yum命令升级软件版本

 yum clean all
 yum makecache fast   (一定要记得,不然重启机器,容易导致磁盘损坏,从而机器重启失败)
 yum update -y   (这个操作一定要等弄完以后才能重启,否则更新途中容易出错的)

在执行上面yum 的过程中,因为我没有执行yum makecache fast 而直接执行yum update -y ,并且在执行yum update -y 的过程中一直卡主不动,就把机器reboot,结果整个机器彻底起不来,因为内核已经受损。后面没有办法只能让基础运维的同事,将机器重装。并劝诫我说执行 yum clean all以后,应该用yum makecache fast重建一次缓存,然后才yum update -y的,这个操作一定要等弄完以后才能重启,否则更新途中容易出错的

重启
reboot

升级 CentOS 7.× 内核,启用 ELRepo

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
 
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

仓库启用后,你可以使用下面的命令列出可用的系统内核相关包:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

yum --enablerepo=elrepo-kernel install kernel-ml

重启机器,检查当前 CentOS 系统内核版本

 reboot
 
 uname -sr
 
> Linux 3.10.0-1127.13.1.el7.x86_64

设置 GRUB 默认的内核版本
为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置,打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0.意思是 GRUB 初始化页面的第一个内核将作为默认内核.

设置:

GRUB_DEFAULT=0.

# vi /etc/default/grub //设置 GRUB 默认的内核版本,你只需要设置GRUB_DEFAULT=0,内容不一定我下面一样
  
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"

重新创建内核配置.

grub2-mkconfig -o /boot/grub2/grub.cfg

重启机器,查看系统当前内核版本,验证最新的内核已作为默认内核

 reboot
 
 uname -a
 
> Linux VM_112_0_centos 5.7.9-1.el7.elrepo.x86_64 #1 SMP Sun Jul 2 20:38:48 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

删除 CentOS 更新后的旧内核

# rpm -qa | grep kernel
 
> kernel-tools-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.10.2.el7.x86_64
> kernel-3.10.0-514.26.2.el7.x86_64
> kernel-3.10.0-327.el7.x86_64
> kernel-ml-4.12.0-1.el7.elrepo.x86_64
> kernel-headers-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.26.2.el7.x86_64
> kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

删除旧内核的 RPM 包

你删除的是你自己在上一步rpm -qa | grep kernel 查到的低版本的rpm包,不一定和我一致

yum remove kernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.10.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.26.2.el7.x86_64 kernel-tools-libs-3.10.0-514.26.2.el7.x86_64

重启系统

reboot

参考文章:
https://www.jianshu.com/p/fdf6bb6c5b9c