k8s出现网络问题,升级centos7内核解决
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