是否可以在Kubernetes中应用许多网络插件,如果可以,在创建Pod时会使用哪个网络插件?
在CNI SPEC中,它没有描述选择相应插件的策略。
我找到了一个可能相关的函数来解决我的疑问:getDefaultCNINetwork()。从这个函数,我认为可以在Kubernetes中应用许多网络插件,并且在创建Pod时,Kubernetes将按照网络插件confs的字母顺序应用第一个网络插件。是不是?
答案 0 :(得分:0)
据我所知,kubernetes目前不支持多个CNI插件。在支持华为完成的多个CNI插件方面有一些正在进行的工作,请查看以下repo:https://github.com/Huawei-PaaS/CNI-Genie。
答案 1 :(得分:0)
从Kubernetes版本v1.14开始:
CNI
通过向Kubelet传递--network-plugin = cni命令行选项来选择CNI插件。 Kubelet从--cni-conf-dir(默认为/etc/cni/net.d)中读取文件,并使用该文件中的CNI配置来设置每个Pod的网络。 CNI配置文件必须符合CNI规范,并且配置引用的所有必需CNI插件都必须位于--cni-bin-dir(默认为/ opt / cni / bin)中。
如果目录中有多个CNI配置文件,则按文件名的先后顺序使用第一个。
除了配置文件指定的CNI插件外,Kubernetes还需要标准的CNI lo插件,最低版本为0.2.0
Kubernetes首先检查/etc/cni/net.d
目录,然后按字母顺序选择其中的第一个配置。
更多信息可以在这里找到:https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/