二进制部署Kubernetes V1.18.X(内核升级篇)

Linux(Centos7系列)内核升级

为什么部署Kubernetes V1.18.X版本需要升级内核版本呢?

基于以下2个方面考虑:

1.官方推荐Docker使用overlay2的存储驱动(overlay2存储驱动需要在内核4.0或者3.10.0-514以上版本才支持)

docker推荐存储驱动类型

Note: overlay2 is the preferred storage driver for systems running Linux kernel version 4.0 or higher, or RHEL or CentOS using version 3.10.0-514 and above.

关于容器存储驱动了解,详见:
https://docs.docker.com/storage/storagedriver

简单描述下vfs、overlay、overlay2 三种存储驱动的优缺点:

存储驱动类型

原理描述

优缺点

vfs

它不是UnionFS联合文件系统,每一层都需要单独创建目录;

不支持读写同步,磁盘空间和性能利用率低,但是稳定、可靠

overlay

它是通过硬连接的方式在层与层之间直接进行共享

完全依赖硬链接数量,而Linux硬连接数量是有限制的;造成可支持分层的数量有限

overlay2

它直接将lower的目录dir挂载到它的/rootfs下

不受硬链接影响,支持读写同步,支持分层高达128层

Docker启动overlay2存储驱动程序需要调整:/etc/docker/daemon.json文件中的”storage-driver”: “overlay2″参数

2.Kubernetes V1.18.X版本的kube-proxy引入的IPVS模块需要内核Kernel 3.10以上版本支持(具体哪个小版本不确定)

内核版本不升级容易造成DNS解析异常:
https://github.com/kubernetes/kubernetes/issues/89520;

Centos7系统版本与初始内核版本对照表

centos7系统版本与内核版本对照表

由上图可知,在Centos7.3.1611版本以前安装docker需要升级内核版本的,不然无法支撑overlay2存储驱动系统

其它版本可通过:
https://en.wikipedia.org/wiki/CentOS 和
https://access.redhat.com/articles/3078 查看

Linux内核下载

内核仓库

仓库地址

备注

elrepo

https://elrepo.org/linux/kernel/el7/x86_64/RPMS/

只维护最新版本内核

pkgs

https://pkgs.org/

内核镜像大全

官方仓库

https://www.kernel.org/

内核版本全,但是全部是源码包

清华源

https://mirrors.cnnic.cn/kernel

与官方源一致

阿里源

https://developer.aliyun.com/mirror/

只维护特定几个版本的内核rpm/deb包,不维护源码,目前正在升级中

elrepo只维护新内核版本,不维护老版本;如果想安装老指定版本需要去 上下载,建议定时同步仓库内核版本到公司或者私人服务器做备份

其中lt为稳定支持版本,ml为最新版本

内核版本升级有三种方式:

  • 小版本升级通过命令:yum update
  • 源码编译安装,优点是可定制化,缺点是操作复杂容易出问题;具体可参考:https://www.linuxidc.com/Linux/2015-07/120197.htm
  • elrepo仓库安装,优点是操作简单,缺点是elrepo仓库只维护最新的Kernel rpm版本
  • 日常Linux内核升级采用第三种方式:

    日常Linux内核升级采用第三种方式:

    查看当前内核版本

    [root@kmi-xfkhyrih ~]# cat /etc/redhat-release[root@kmi-xfkhyrih ~]# uname -a

    内核版本

    更新yum源仓库

    [root@kmi-xfkhyrih ~]# yum -y update

    启用ELRepo仓库

    ELRepo 仓库是基于 区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。

    ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、 络驱动、声卡驱动和摄像头驱动等。

    导入ELRepo仓库的公共密钥、安装 ELRepo仓库的yum源

    [root@kmi-xfkhyrih ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org[root@kmi-xfkhyrih ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm

    查看当前仓库支撑内核版本,并安装最新稳定版:

    [root@kmi-xfkhyrih ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available[root@kmi-xfkhyrih ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y 

    支持安装的内核版本

    –enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。内核安装好后,需要设置为默认启动选项并重启后才会生效

    查看系统所用内核:

    [root@kmi-xfkhyrih ~]# awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

    系统已安装的内核版本

    设置服务器默认启动内核

  • 通过grub2-set-default 0 命令
  • [root@kmi-xfkhyrih ~]# grub2-set-default 0
    [root@kmi-xfkhyrih ~]# vim /etc/default/grubGRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"GRUB_DEFAULT=saved 改成 GRUB_DEFAULT=0GRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet console=tty0 console=ttyS0,115200n8"GRUB_DISABLE_RECOVERY="true"[root@kmi-xfkhyrih ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

    重启服务器验证内核生效

    [root@kmi-xfkhyrih ~]# reboot[root@kmi-xfkhyrih ~]# uname -aLinux kmi-xfkhyrih.novalocal 5.4.114-1.el7.elrepo.x86_64 #1 SMP Mon Apr 19 18:53:45 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

    由此可知内核版本已更新生效。

    卸载老版本内核(可选)

    1.通过yum remove方式

    [root@kmi-xfkhyrih ~]# rpm -qa|grep kernelkernel-3.10.0-1127.el7.x86_64kernel-tools-3.10.0-1160.24.1.el7.x86_64kernel-lt-5.4.114-1.el7.elrepo.x86_64kernel-3.10.0-1127.19.1.el7.x86_64abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64kernel-tools-libs-3.10.0-1160.24.1.el7.x86_64kernel-3.10.0-1160.24.1.el7.x86_64

    可通过yum remove 方式删除不需要的内核版本,一般版本不超过5个,建议不用删除

    2.通过yum-utils工具删除

    内核个数不超过3个的时候,工具不删除,超过3个执行 package-cleanup –oldkernels清理

    [root@kmi-xfkhyrih ~]# package-cleanup --oldkernels

    到此Centos系统升级内核完成。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年3月23日
    下一篇 2021年3月23日

    相关推荐