CNI
Overview
CNI (Container Network Interface) is a standard set of tools that provides networking capabilities to containers in a Kubernetes cluster. Simply put, CNI is an abstraction layer that helps Kubernetes manage and configure networking for pods (a collection of containers sharing the same network) in a flexible and efficient way.
How does CNI work?
When you create a new pod, Kubernetes calls CNI to create a network interface for that pod. The CNI plugin performs the following tasks:
Assign IP address: Assign a unique IP address to the pod.
Routing configuration: Set up routing rules that allow communication between pods,...
Additionally, the connections work as follows:
Connecting within the same VPC : Nodes within the same VPC will connect directly to each other.
Connecting between different VPCs : Use VPC Peering to connect nodes between different VPCs.
Connect to external infrastructure: Use networking solutions such as site-to-site VPN or Direct Connect to connect from nodes in VPC to external infrastructures (On Cloud, On-premise).
This helps maintain a continuous, flexible, and secure network infrastructure in a multi-cloud or hybrid-cloud environment.
Comparison between CNI plugins
Currently, VKS is providing 3 popular CNI plugins: Calico Overlay, Cilium Overlay, Cilium VPC Native Routing. In which:
Calico Overlay : Uses overlay model through tunneling ( IP-in-IP ). Compatible with many infrastructures but performance can be affected by tunnel overhead .
Cilium Overlay : Also uses the overlay model but has strong integration with eBPF , which improves performance, security, and scalability.
Cilium VPC Native Routing : Uses eBPF and no overlay required , leveraging the routing capabilities of the VPC infrastructure, providing the best performance and scalability.
When to use Calico Overlay : simple to use, does not require too high performance.
When to use Cilium Overlay : simple to use, does not require too high performance but requires intensive monitoring (Hubble).
When to use Cilium VPC Native Routing : high performance requirements, easy connectivity to external systems , and in-depth monitoring needs (Hubble).
Last updated