# 报错内容
1 | Warning FailedCreatePodSandBox 5m17s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "1ded5da71b38996763e74f28f609d8d8f26a4cc1e4fdd3272312bf3e168e4111": plugin type="bridge" failed (add): incompatible CNI versions; config is "1.0.0", plugin supports ["0.1.0" "0.2.0" "0.3.0" "0.3.1" "0.4.0"] |
# 部署的环境
1 | centos 8 |
# 解决问题
这个问题的主要内容是: incompatible CNI versions
. 当你去网上去搜索解决方案大都是 说 使用 containerd
的版本不对,也就是说,确实是 CNI
的版本是有问题的。
具体的解决方案在官方网站中是这样说的:
具体内容可以看这里:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/troubleshooting-cni-plugin-related-errors/#updating-your-cni-plugins-and-cni-config-files
首先可以查看 当前的 containerd
的版本.
1 | [root@k8s-master-01 ~]# containerd -v |
不在 v1.6.0-v1.6.3
中。 文档中说 在 v1.6.4
版本中已经修复了这个问题.
查看 /etc/cni/net.d/10-containerd-net.conflist
这个文件, cni 版本 "cniVersion": "1.0.0",
, 也确实是 1.0.0
继续搜索
在 https://github.com/containerd/containerd/issues/6876 中,有一个人遇到了 v1.6.4
版本中出现了 incompatible CNI versions
这个问题。
仔细看他的这个问题,是我遇到的这个问题是一样的 plugins type='bridge'
. 而这个 issure
中提到的问题,是当 plugins type = 'loooback'
. 这也是上图中 hakman
提到的。
仔细看 mikebrow
所说的,需要安装一个 1.0.0
版本的 bridge
.
那就在网络中搜索 : k8s 是安装 bridge
, 在 https://blog.csdn.net/m0_48594855/article/details/107870839
看到 安装 bridge 的方法,他这里是使用 git 仓库 源码编译。其实直接打开 git 仓库 https://github.com/containernetworking/plugins/releases/tag/v1.1.1
下载对应版本即可, 今天是 2022
年 7
月 22
日,我就下载了最新的一版本。
简单粗暴的 /opt/cni/bin/
下的内容,全部替换掉,然后重启 kubelet
服务就可以了。
1 | # 下载包 |
然后再所有的节点上都执行一遍上面的内容,然后就可以了。
可以通过 kubectl describe pod
查看下是否开始下载镜像了。
# 问题解决思路
- 先看下
contrainerd
版本是否>=1.6.4
- 如果
<=1.6.3
那么就需要升级contrainerd
运行环境. - 如果还有这样的问题,那就是要看下对应的插件类型是否满足版本要求了。
- 如果不满足,那就重新安装下对应的插件就行了,比如我的问题中的
bridge
插件。
# 举一反三
假设有一棵树,那个问题只是这棵树的一片叶子, 这里面还涉及到很多 k8s
的概念性的东西。比如 CNI
网络插件都有什么,每种插件的功能是什么,以及对应的网络驱动是什么,比如 Calico
, fannel
, bridge
。 CNI
和 containerd
, cri-o
都是什么关系。所以,要从根儿上去理解这些概念。 废话不多说,下篇文章见。
# 参考文档
1、https://github.com/containerd/containerd/issues/6876
2、https://blog.csdn.net/m0_48594855/article/details/107870839
3、https://github.com/containernetworking/plugins/releases/tag/v1.1.1
4、https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/troubleshooting-cni-plugin-related-errors/#updating-your-cni-plugins-and-cni-config-files