CNI (Container Network Interface) offers a plugin system for network configuration, decoupling it from Kubernetes. Plugins are responsible for allocating IP addresses to Pods and configuring the host Node's network to route their traffic. This enables CNI plugins to allocate arbitrary addresses.

The plugins are implemented as standalone executables invoked by the kubelet. It's possible to combine or chain multiple plugins in some configurations.

Many cloud providers have written their own CNI plugins to handle provisioning their network resources directly, removing the need for a dedicated overlay network.

  1. AWS VPC
  2. Azure CNI
  3. Project Calico
  4. Weave Net
  5. kube-router