【问题标题】:How does Kubernetes choose which network plugin to execute when creating a Pod?Kubernetes 在创建 Pod 时如何选择执行哪个网络插件?
【发布时间】:2017-11-18 18:57:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: networking kubernetes


    【解决方案1】:

    从 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/

    【讨论】:

      【解决方案2】:

      据我所知,kubernetes 目前不支持多个 CNI 插件。华为在支持多个 CNI 插件方面正在进行一些工作,请查看以下 repo:https://github.com/Huawei-PaaS/CNI-Genie

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        • 2020-02-18
        • 1970-01-01
        相关资源
        最近更新 更多