1.因为k8s和centos7内核版本的问题,导致机器经常出现网络一直重启的问题,当时的处理方式是重启机器,就能临时解决问题,但是反反复复会偶尔出现。后面判断应该是centos7内核版本问题,所以决定升级centos7内核版本
kernel:unregister_netdevice: waiting for eth0 to become free. Usage count = 1
在这里插入图片描述

我们的机器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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐