multus
Multus 可以给 Pod 添加多张网卡。
master plugin 负责接入 K8s 网络。
Multus 使用 CRDs 扩展 K8s API,来存储 Multus 所需信息,例如除 master plugin 之外网卡的配置信息。
Multus 以 daemonset 的形式存在于节点上。Multus daemonset 做了以下几件事:
将 multus binary 放到每个节点的
/opt/cni/bin目录下基于默认网络配置文件 (通常是
/etc/cni/net.d下字典序第一个配置文件) 生成/etc/cni/net.d/00-multus.conf在每个节点上创建
/etc/cni/net.d/multus.d目录,包含 Multus 访问 Kubernetes API 的认证信息。
Multus 定义了一个 CRD: NetworkAttachmentDefinition,通过在创建 Pod 时加上相应的注解来增加指定的网卡。在注解中以逗号分隔,可以指定多个额外的网卡。也可以指定多个相同类型的网卡。
Pod 的 Annotation 里有详细的网络配置信息
配置
daemonset
git clone https://github.com/k8snetworkplumbingwg/multus-cni.git && cd multus-cnicat ./images/multus-daemonset.yml | kubectl apply -f -
定义附加网卡。 注意: config 中 master 字段需要和主机上默认路由的网卡相同
如果 NetworkAttachmentDefinition 没有 spec,multus 会在
/etc/cni/multus/net.d里面找相应的配置文件。更推荐此做法,达到解耦的效果。
创建 Pod
可以指定新增网卡的名称
k8s.v1.cni.cncf.io/networks: macvlan-conf@<ifname>
Last updated