二进制 containerd 1.7.0 部署 calico 报错

  • k8s 版本-v1.26.3

启动 calico 容器异常,查看 kubelet 日志,发现了下面的报错,可以看到,是缺少了 libseccomp.so.2

Jan 07 15:30:18 localhost.localdomain containerd[18291]: time="2024-01-07T15:30:18.138251660+08:00" level=warning msg="cleanup warnings time=\"2024-01-07T15:30:18+08:00\" level=warning msg=\"failed to remove runc container\" error=\"runc did not terminate successfully: exit status 127: runc: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directory\\n\" runtime=io.containerd.runc.v2\ntime=\"2024-01-07T15:30:18+08:00\" level=warning msg=\"failed to read init pid file\" error=\"open /run/containerd/io.containerd.runtime.v2.task/k8s.io/62b7d50b072a9ec981202db2ebd5888cf53ccd72358d840628ae3f3f112b9b92/init.pid: no such file or directory\" runtime=io.containerd.runc.v2\n" namespace=k8s.io

尝试了 yum 安装,但是还是报错了

yum install -y libseccomp

查看 runc 命令能不能用

runc -v

发现了下面的报错

runc: symbol lookup error: runc: undefined symbol: seccomp_notify_respond

runc seccomp_notify_respond

原因就是 libseccomp 版本太低了,centos 7 的最新版是 2.3.1 ,需要使用 2.5.0 以上版本的

# centos 7 实测可以安装 centos 8 的 libseccomp,可以放心安装
wget http://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm
rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm

再次使用 runc 命令,就可以查看到 runc 的信息了

runc version 1.1.4
commit: v1.1.4-0-g5fd4c4d1
spec: 1.0.2-dev
go: go1.20.2
libseccomp: 2.5.1

所有节点都安装好 libseccomp 之后,就可以正常安装 calico 了

posted @ 2024-01-07 16:25  月巴左耳东  阅读(164)  评论(0)    收藏  举报  来源