Containerd OCI runtime create failed

庆云2年前技术文章2043

1、背景

Kubernetes 集群新增 worker 节点(centos7、containerd),发现容器一直启动不起来。

01-containerd-alarm.png


2、报错信息

经查看系统 message 日志发现如下报错信息:

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

01-system-message.png


3、报错解决

判断是 runc 异常,执行 /usr/local/sbin/runc -v 命令发现缺少依赖包 libseccomp:

$ /usr/local/sbin/runc -v
/usr/local/sbin/runc: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directory


经下载发现 centos7 中 yum 下载的版本是 2.3 的,未解决我们的报错,版本不满足最新 containerd 的需求,需要下载 2.4 以上的版本。

# 卸载旧版 libseccomp
$ rpm -qa | grep libseccomp
libseccomp-2.3.1-4.el7.x86_64
$ rpm -e libseccomp-devel-2.3.1-4.el7.x86_64 --nodeps
$ rpm -e libseccomp-2.3.1-4.el7.x86_64 --nodeps

# 下载新版 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
warning: libseccomp-2.5.1-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
  1:libseccomp-2.5.1-1.el8           ################################# [100%]

# 查看版本
$ rpm -qa | grep libseccomp
libseccomp-2.5.1-1.el8.x86_64


再次执行 /usr/local/sbin/runc -v 命令,未发现报错,此时容器也已经正常。

$ /usr/local/sbin/runc -v
runc version 1.1.2
commit: v1.1.2-0-ga916309f
spec: 1.0.2-dev
go: go1.17.11
libseccomp: 2.5.

01-containerd-alarm-recovery.png


相关文章

PG的analyze与vacuum

analyze-统计信息用于收集表的统计信息,只会对表加读锁,不影响表上其它SQL并发执行,对于大表只会读取表中部分数据 vacuum-碎片回收标记旧版本行的信息为可用,以重复使用这部分空间 更新统计...

Storage Classes之nfs provisioner

Storage Classes之nfs provisioner

每个 StorageClass 都有一个制备器(Provisioner),用来决定使用哪个卷插件制备 PV。 该字段必须指定。这里我们使用nfs作为StorageClass的制备器,官方并未对nfs进...

hive元数据操作

1.查看hive从超过5000分区的表select dbs.name, tbls.TBL_NAME, count(1) as part_count from dbs, tbls, partitions...

切换不同的网络访问同一个业务报错"network error"

切换不同的网络访问同一个业务报错"network error"

问题现象:业务:xxx,使用谷歌浏览器登陆之后,访问“商品档案”模块,会提示“network error”报错内容,但是切换到其他浏览器测试是可以正常访问的,同时,在使用谷歌浏览器访问的情况下,如果切...

MySQL性能优化(四)隐式类型转换

我们知道, where条件中,对一个索引字段进行运算会导致无法使用该字段的索引。有些情况下,即使没有显式地对索引字段进行运算,但是数据库会进行隐式类型转换,这也会导致无法使用索引。会发生隐式类型转换的...

Nexus 制品管理平台

Nexus 制品管理平台

Nexus 官网:https://www.sonatype.com/nexus-repository-ossNexus 是一个很强大的私服软件,不仅仅是作为 Java 的 Maven 打包使用,同样的...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。