部分组件需要,所以需要升级内核,这里总结下步骤,虚拟机测试了5台,没有发现问题。
CentOS7 自带的内核是非常老的3.10
,这里某些功能需要新的内核支持,所以记录下升级内核的方法
# 导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
然后可以查看下当前最新的lt
长期支持版,和最新的ml
主要分支,生产线当然是推荐lt
yum list available --disablerepo=* --enablerepo=elrepo-kernel
# 查看内核版本?
yum --enablerepo=elrepo-kernel list |grep kernel*
然后就可以安装
# 安装LongTerm内核
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt.x86_64 -y
# 安装最新内核
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -y
# 如果有需要安装工具也可以dev
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64 -y
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt-tools.x86_64 -y
接下来可以查看内核的启动顺序
# 查看插入顺序,看看而已
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 查看启动顺序
grub2-editenv list
修改启动顺序
# 方法
grub2-set-default 'CentOS Linux (4.4.249-1.el7.elrepo.x86_64) 7 (Core)'
## 然后查看启动顺序
grub2-editenv list
接下来重启
reboot now
重启后可以查看最新的内核,有需要也可以删除内核
uname -r
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))
首先从如下链接选择内核版本 http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
,然后通过rpm -ivh xx
进行安装。
下面通过我需要的kernel-lt-4.4.249-1.el7.elrepo.x86_64
来举例
# https://www.cnblogs.com/erlou96/p/12904902.html
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-4.4.249-1.el7.elrepo.x86_64.rpm
# 安装内核
rpm -ivh kernel-lt-4.4.249-1.el7.elrepo.x86_64.rpm --force
# 查看插入顺序,看看而已
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 设置需要的内核最为启动项目
grub2-set-default 'CentOS Linux (4.4.249-1.el7.elrepo.x86_64) 7 (Core)'
# 然后查看启动顺序
grub2-editenv list
# 重启进入新的内核后执行下述代码可以删除老的内核
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))
我的目的是为了安装 kubernetes,我发现超过 4.4版本的内核在开启 ipvs 的时候会出现问题,所以我选择的是 4.4版本的最新内核。