当我们搭建k8s集群时,出现k8s工作节点发生失联的状况升级linux内核版本,导致部分服务无法使用。出现这种问题很有可能就是因为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:
下载指定版本 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修改为内核位置linux windows,此处为0升级linux内核版本suse linux 下载,则改为GRUB_DEFAULT=0
6. 执行grub2-mkconfig命令重新设置内核配置
grub2-mkconfig -o /boot/grub2/grub.cfg
7. 最后一步重启:reboot