今天要來介紹一個由Intel 通過貢獻 Multus Container Network Interface(CNI)Plug-in 可以使Pod具備多項介面的開源工具,簡稱Multus CNI。
在k8s中, Pod 只會執行一次 CNI 來設定相關的網路功能,但是在一些需求中,會需要該 Pod 中有多個網路介面。這時可以用來支援不同的通訊協定或 software stacks 以及支援不同的調整和配置要求。
Multus 可以在 Kubernetes 的 POD 中提供多個網路介面,同時也能將多個 CNI 的 Plug-in 組合,讓 POD 擁有不同的網路類型。Multus也支援了使用 Kubernetes CRD 將不同的 POD 有不同數量的單一或多網路配置,這讓 Kubernetes 對於網路的解決方案更為多樣。
Multus 可以支援各種的CNI plugin,讓Pod擁有多個網路介面:
CNI 開發的 Plug-in ,例如:DHCP,Macvlan,Flannel
第三方 Plug-in 例如:Calico,Weave
其他 例如: SRIOV,SRIOV-DPDK,OVS-DPDK
此專案 network-controller可以輕鬆地做多網路介面的連通設置,在今天我也介紹一下此開源專案,於明天一起做實做。此專案主要透過建立Daemonset幫忙做一個網路建立的工作。我們可以通過在Pod上建立Init Containers來建立網路介面進行通訊。