CNI Integrations

What is CNI?

CNI (Container Network Interface) is specification for writing plugins to configure network interfaces for Linux containers, along with a number of supported plugins. CNI concerns itself only with network connectivity of containers and removing allocated resources when the container is deleted. Because of this focus, CNI has a wide range of support and the specification is simple to implement.

For more information on CNI refer to the CNI Github page

CNI Plugins

A variety of CNI plugins are available to enable Kubernetes to integrate with specific networking solutions.

Following table compares the various CNI plugins across different networking features. (NOTE: Managed Kubernetes only supports a subset of these plugins, as mentioned below.)

Plugin FeaturesFlannelCalicoWeaveCanalContiv
Networking pluginForwards to bridge driverYesYes (via bridge plugin)Yes (bridge driver)Yes
IPAMhost-localcalico-ipamweave ipam / host-localhost-localcontiv ipam
Host to host networkingOverlay - UDP and VXLANBGP L3 routing basedFast data path and weave router sleeve (VXLAN)Calico + FlannelOverlay - VXLAN and VLAN based networks using a vSwitch
Kubernetes network policy supportNoYesYesYesYes
ScalabilityLimitedL3 IP. ScalableScalable. Fast data path makes it more efficientScalable with advantage of easy setup that flannel bringsIntegrates with ACI fabric. Highly scalable with ACI
DebugabilityEasy with UDPEasy since it uses IPWeave CLI has multiple debugging commandsMix of Calico + FlannelCommunity and documentation

Plugins Supported By Managed Kubernetes

Platform9 Managed Kubernetes supports following CNI plugins today:

Flannel

Flannel is a very simple overlay network that provides an easy way to configure a layer 3 network fabric designed for Kubernetes. See Integration with Flannel for more information on Flannel integration with Mananged Kubernetes.

Calico

Calico is a popular Layer 3 based networking solution that is used to interconnect virtual machines or Linux containers with the help of virtual routers. See Integration with Calico for more information on Calico integration with Mananged Kubernetes.

Calico with Flannel Networking

It is possible to deploy Calico networking plugin for your Kubernetes cluster in such a way that the cluster uses Calico for network policy and flannel overlay with VXLAN for networking. Managed Kubernetes enables this integration. See Integration with Calico with Flannel Networking for more information.