解决Error validating CNI config file:[plugin bridge does not support config version “1.0.0“]

之前在使用podman容器时都一切正常,可以在Windows下使用Goland的Docker工具直接部署容器到远程Linux运行。
有一段时间没有使用容器编排部署了,昨天再次使用的时候发现Goland报错:

Error response from daemon: error configuring network namespace for container b73c72cc5fbf3123fdc24a70d086fd4991e85635e1707b6a796fd41ae9e371e0: CNI network "network" not found

然后Linux监听容器的进程报错:

$ podman system service --time=0 tcp:0.0.0.0:2345
WARN[0184] Error validating CNI config file /home/witton/.config/cni/net.d/network.conflist: [plugin bridge does not support config version "1.0.0" plugin portmap does not support config version "1.0.0" plugin firewall does not support config version "1.0.0" plugin tuning does not support config version "1.0.0"] 
ERRO[0184] Error tearing down partially created network namespace for container b73c72cc5fbf3123fdc24a70d086fd4991e85635e1707b6a796fd41ae9e371e0: CNI network "network" not found 

网上查了很多资料,没有对症的。

其实从Linux的报错信息来看,是由于network.conflist文件中配置的bridgeportmap firewall tuning 插件不支持"1.0.0"版本。打开network.conflist文件,可以看到里面配置的"cniVersion"版本为 “1.0.0”:

"cniVersion": "1.0.0",

由于服务器不定期有更新,想必是容器相关组件更新了。
podman的版本:

$ podman -v
podman version 3.4.4

containerd版本:

$ containerd -v
containerd github.com/containerd/containerd 1.7.2 

对比了一下另一台机器的podman版本一致,containerd版本不一样:

$ containerd -v
containerd github.com/containerd/containerd 1.6.12-0ubuntu1~22.04.3

果然是升级导致的问题,但是很奇怪ubuntu1为啥没同时更新podman,目前最新版本已经是4.6.2了。看了一下cni 1.0.0的文档,实际是支持bridgeportmap firewall tuning 插件的,应该是podman的版本不适应新的containerd 1.7.2。由于服务器上还有很多容器在运行,为了稳定,不能贸然手动更新podman或者降级containerd到1.6.12。从cni的文档可以看出1.0.0之前的版本是0.4.0,手动把network.conflist配置的"cniVersion"版本为 "0.4.0"即可。

这是目前稳妥的方法,只是很麻烦,每次部署都需要手动去修改!后面系统升级了podman可能就会解决此问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值