当我们搭建k8s集群时,出现k8s工作节点发生失联的状况,导致部分服务无法使用。出现这种问题很有可能就是因为kubernetes 1.16与CentOS的内核3.10不兼容导致。
报错日志如下

Failed create pod sandbox: rpc error: code = Unknown desc = 
failed to start sandbox container for pod "cloud-kafka-0": Error
 response from daemon: OCI runtime create failed: 
 container_linux.go:345: starting container process caused 
 "process_linux.go:303: getting the final child's pid from pipe 
 caused \"EOF\"": unknown.

下面就介绍一下升级linux内核的方法。

1. 查看当前linux内核版本:uname -r

若是内核版本大于3.10则可以不必升级

2. 下载kernel的rpm包

下载指定版本 kernel:
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel
下载指定版本 kernel-devel:
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel-devel

3. 将rpm包拷贝至服务器任意目录,并cd到该目录执行安装rpm

yum -y  install   kernel-lt-devel-5.4.127-1.el7.elrepo.x86_64.rpm
yum  -y  install  kernel-lt-5.4.127-1.el7.elrepo.x86_64.rpm

4. 查看新版本内核顺序

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

在这里插入图片描述
执行命令可见,linux内核已升级到5.4的版本。

5. 修改内核的启动顺序为0

vim /etc/default/grub

找到GRUB_DEFAULT=saved,将saved修改为内核位置,此处为0,则改为GRUB_DEFAULT=0

6. 执行grub2-mkconfig命令重新设置内核配置

grub2-mkconfig -o /boot/grub2/grub.cfg

7. 最后一步重启:reboot

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐