Overview
Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. This document aims to guide Kubernetes administrators/users on the NVIDIA networking stack, offering solutions, and explaining how to configure them in Kubernetes, as well as providing detailed information on how to configure CNIs, Device Plugins and NVIDIA Network Operator with NVIDIA hardware.
k8s-images repository is provided with Dockerfile examples of how to build RDMA/DPDK/perftest container images.
Kubernetes Plugin | Version |
---|---|
Multus CNI | v3.8 |
SR-IOV CNI | v2.6 |
IB-SRIOV CNI | v1.0.2 |
RDMA CNI | v1.0.1 |
IPoIB CNI | v1.0.0 |
Containernetworking-plugins | v0.8.7 |
Whereabouts IPAM CNI | v0.4.2 |
Antrea CNI | v0.10.0 |
OVN-kubernetes CNI | OVN: Commit-ID: 11afc46b4aa392fa0025999e18c9c679e5fe5f7a |
IB-Kubernetes | v1.0.0 |
SR-IOV network device plugin | sriov-network-device-plugin: Commit-ID: a765300344368efbf43f71016e9641c58ec1241b |
RDMA shared device plugin | v1.2.1 |
NVIDIA Network Operator | v1.0.0 |
Multi-network POD
By default, Kubernetes allows for a single network (primary network) to be connected to a POD. Kubernetes network attachment definition custom resources enhance this capability, and allow users to attach multi-networks for POD, a primary network which runs all of Kubernetes services and one or more secondary networks which are typically used for high performance. The cluster network CNI plugin (primary plugin) is satisfying Kubernetes’ networking requirements. Below is a list of well known cluster network CNI providers:
CNI Provider | Project |
---|---|
Calico | |
flannel | |
Canal | |
ovn-kubernetes |
The Multus CNI plugin enables attaching multiple network interfaces to pods. Multus is acting as a "meta-plugin", a CNI plugin that can call multiple other CNI plugins.
Device Plugin
Kubernetes provides a device plugin framework that can be used to advertise system hardware resources to the Kubelet. More information about the device plugin framework can be found at https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/.
This document presents configuration with the following device plugins:
Device Plugin | Project |
---|---|
SR-IOV network device plugin | https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin |
RDMA shared device plugin |
- SR-IOV network device plugin - A device plugin for discovering and advertising the SR-IOV virtual functions (VFs) that are available on a Kubernetes host.
- RDMA shared device plugin - device plugin for sharing RDMA devices between PODs on the same host.