Overview
Traditionally, multiple network interfaces are employed by network functions to provide for separation of control, management and data/user network planes. They are also used to support different protocols or software stacks and different tuning and configuration requirements. Intel helped facilitate NFV use cases in container environments by contributing the Multus Container Network Interface (CNI) device plugin. This plugin that can be used to create multiple network interfaces for pods in Kubernetes*.
Design and Architecture
Here's an illustration of the network interfaces attached to a pod, as provisioned by Multus CNI. The diagram shows the pod with three interfaces: eth0
, net0
and net1
. eth0
connects kubernetes cluster network to connect with kubernetes server/services (e.g. kubernetes api-server, kubelet and so on). net0
and net1
are additional network attachments and connect to other networks by using other CNI plugins (e.g. vlan/vxlan/ptp).
Installation and Usage
The quickstart installation method for Multus requires that you have first installed a Kubernetes CNI plugin to serve as your pod-to-pod network, which we refer to as your "default network" (a network interface that every pod will be creatd with). Each network attachment created by Multus will be in addition to this default network interface. For more detail on installing a default network CNI plugins, refer to our quick-start guide.
Clone this GitHub repository, we'll apply a daemonset which installs Multus using to kubectl
from this repo. From the root directory of the clone, apply the daemonset YAML file:
$ cat ./images/multus-daemonset.yml | kubectl apply -f -
This will configure your systems to be ready to use Multus CNI, but, to get started with adding additional interfaces to your pods, refer to our complete quick-start guide