如何查询K8s集群使用的CNI插件及对应配置文件存放位置
K8s集群查询启用CNI插件类型及配置路径方法
查询已启用的CNI插件类型
你可以通过以下几种方式快速确认:
- 查看节点CNI配置目录的主配置文件
Kubelet默认会按字典序加载/etc/cni/net.d/目录下第一个合法的CNI配置,直接查看排序最靠前的配置文件即可:
常见配置文件名和插件对应关系:# 列出所有CNI配置文件,前缀数字最小的为主配置 ls /etc/cni/net.d/ # 查看主配置内容,type字段对应的值就是启用的CNI插件类型 cat /etc/cni/net.d/$(ls /etc/cni/net.d/ | sort | head -n1)10-calico.conflist对应Calico、10-flannel.conflist对应Flannel、05-cilium.conf对应Cilium、10-weave.conf对应Weave。 - 查看kube-system命名空间下的CNI守护进程
绝大多数CNI插件会以DaemonSet形式在kube-system命名空间下运行,执行以下命令可辅助验证:kubectl get pods -n kube-system | grep -E 'calico|flannel|cilium|weave|antrea|kube-ovn'
查询CNI插件关联配置存放路径
- 默认路径
CNI配置文件默认存放路径为/etc/cni/net.d/,CNI插件二进制文件默认存放路径为/opt/cni/bin/。 - 自定义路径查询
如果集群修改了默认路径,可通过查看kubelet启动参数获取真实路径:
查找参数ps aux | grep kubelet--cni-conf-dir对应的值即为配置文件存放路径,--cni-bin-dir对应的值即为插件二进制文件存放路径。
补充说明
部分集群会配置CNI插件链式调用,这类场景下.conflist后缀的配置文件中会存在多个type字段,按顺序即为调用的插件序列。
内容的提问来源于stack exchange,提问作者maiky
相关产品推荐
相关产品推荐

