文章时间:2020年12月20日 23:33:55 解决问题:将CentOS7.x版本系统的内核升级到最新版 ps:CentOS7.x系统自带的3.10.x内核存在一些Bugs,导致运行的Docker、kubernetes不稳定,建议升级内核,容器使用的坑会少很多
第一步 更新yum(脚本内已集成)
代码语言:javascript复制yum update
第二步 执行脚本
下面这个脚本,请直接全部复制,然后进入到linux内,自行创建一个sh文件,然后执行
脚本执行后输入1、2对应下面的2条:(1和2依次执行) 1 会进行yum update升级并重启 2 选择最新内核所代表的最前面的数字,确认执行再次输入
y
进行确认
执行脚本
代码语言:javascript复制sh upgradekernel.sh
脚本文件↓,无需修改请全部复制即可!
代码语言:javascript复制#!/bin/bash
clear;
function upgradeYum()
{
yum clean all;
yum update -y;
reboot;
}
function upgradeKernel()
{
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 -y kernel-ml;
grub2-mkconfig -o /boot/grub2/grub.cfg;
grub2-editenv list;
awk -F' '$1=="menuentry " {print i " : " $2}' /etc/grub2.cfg;
echo -n "请输入最新的内核编号 ->";
read num;
grub2-set-default $num;
grub2-editenv list;
}
function confirmKernel()
{
echo -n "确定内核与输入的对应吗? 如果是请输入(y),否则输入(n) ->";
read confirmInput;
if [ "$confirmInput" == 'y' ]; then
reboot;
elif [ "$selected" == 'n' ]; then
exit;
else
confirmKernel;
return;
fi;
}
function removeOldKernel()
{
IFS=$'n';
for LINE in `rpm -qa | grep kernel- | grep 3.`; do
yum -y remove ${LINE};
done;
reboot;
}
function checkSystem()
{
cat /etc/redhat-release;
uname -sr;
uname -a;
echo "[Notice] Confirm Upgrade Kernel? please select: (1~4)"
select selected in '执行yum update输入1' '升级内核请输入2' '删除旧的内核' 'Exit'; do break; done;
[ "$selected" == 'Exit' ] && echo 'Exit Upgrade.' && exit;
if [ "$selected" == '执行yum update输入1' ]; then
upgradeYum;
elif [ "$selected" == '升级内核请输入2' ]; then
upgradeKernel;
confirmKernel;
elif [ "$selected" == '删除旧的内核' ]; then
removeOldKernel;
else
ConfirmInstall;
return;
fi;
echo "[OK] You Selected: ${selected}";
}
checkSystem;