Software Architecture
The SR-IOV device plugin runs on compute nodes in a Kubernetes cluster and is deployed in the Pods defined by DaemonSet.
- Figure 1 shows the software architecture of the SR-IOV device plugin.
- Figure 2 shows the software architecture of the SR-IOV-CNI network plugin.
- Figure 3 shows the software architecture of the Bond-CNI plugin.
- Table 1 describes the functions of each module in the architecture.
|
Module |
Function |
|---|---|
|
kubelet |
The kubelet requests these network plugins to configure network interfaces before Pods are started. |
|
Device plugin manager |
A subcomponent of the kubelet, which manages the lifecycle and status of device plugins. It interacts with device plugins such as SR-IOV device plugin to ensure that devices are available on nodes and allocates devices to corresponding containers during Pod scheduling. |
|
Multus CNI |
A multi-network plugin management tool that allows a Pod to connect to multiple networks at the same time. It functions as the manager of CNI plugins and calls different network plugins (such as SR-IOV-CNI network plugin and Flannel) to configure network interfaces based on Pod configurations. |
|
SR-IOV devices |
Passes through a single SR-IOV device to multiple containers. |
|
SR-IOV device plugin |
Kubernetes SR-IOV device plugin, which is used to identify and manage SR-IOV devices. When an allocation request arrives, it is responsible for determining which device is allocated. |
|
SR-IOV-CNI network plugin |
Managed by Multus CNI and called by the kubelet, it configures SR-IOV network interfaces for Pods. It interacts with the physical NICs of a node and allocates VFs from the physical NICs to containers. |
|
Bond-CNI plugin |
Managed by Multus CNI and called by the kubelet, it builds bond network interfaces based on SR-IOV network interfaces of Pods. |


