部署calico时,容器一直启动失败,使用 kubectl describe pods 容器名 -n kube-system 进入容器查看,提示找不到k8s.gcr.io/pause:3.6 ,我用的是k8s.gcr.io/pause:3.7,这是第一个坑,没办法,去下载下来,放到每个服务器下,重新部署,还是失败。
这次继续查看容器内报错,

failed to create containerd task: failed to create shim task: OCI
runtime create failed: unable to retrieve OCI runtime error (open
/run/containerd/io.containerd.runtime.v2.task/k8s.io/c4847070fad34a8da9b16b5c20cdc38e28a15cfcf9913d712e4fe60d8c9029f7/log.json:
no such file or directory): runc did not terminate successfully: exit
status 127: unknown

寻求各种解决方式,发现是一个libseccomp-2.3.1-3.el7.x86_6 插件的版本过低,在k8s1.24.7之前都没有这个bug,需要把他升级到2.5.1,升级方式如下:

1.查看当前安装版本
rpm -qa | grep libseccomp
libseccomp-2.3.1-3.el7.x86_64

2.卸载当前低安装版本
这里有2种方式,我的是用第二种方式卸载的,大家根据需求哈
第一种:rpm -e libseccomp-2.3.1-3.el7.x86_6 --nodeps
第二种:yum remove -y libseccomp

3. 下载安装包
wget https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm
wget https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.2-1.el8.x86_64.rpm

4,使用命令安装libseccomp高版本插件
rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm 

5.查看当前版本
 rpm -qa | grep libseccomp
libseccomp-2.5.1-1.el8.x86_64

再次使用kubectl get pods -A 查看calico容器,已经全部启动正常。
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐