Kubernetes如何选择在创建Pod时执行哪个网络插件?

时间:2017-06-16 05:56:14

标签: networking kubernetes

是否可以在Kubernetes中应用许多网络插件,如果可以,在创建Pod时会使用哪个网络插件?

CNI SPEC中,它没有描述选择相应插件的策略。

我找到了一个可能相关的函数来解决我的疑问:getDefaultCNINetwork()。从这个函数,我认为可以在Kubernetes中应用许多网络插件,并且在创建Pod时,Kubernetes将按照网络插件confs的字母顺序应用第一个网络插件。是不是?

2 个答案:

答案 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/