|
| 1 | +--- |
| 2 | +title: Use Cilium as Network Plugin |
| 3 | +--- |
| 4 | + |
| 5 | +| status: | date: | decision-makers: | |
| 6 | +| --- | --- | --- | |
| 7 | +| proposed | 2025-02-18 | Alexandra Aldershaab, Steffen Petersen | |
| 8 | + |
| 9 | + |
| 10 | +## Context and Problem Statement |
| 11 | + |
| 12 | +A CNI plugin is required to implement the Kubernetes network model by assigning IP addresses from preallocated CIDR ranges |
| 13 | +to pods and nodes. The CNI plugin is also responsible for enforcing network policies that control how traffic flows between |
| 14 | +namespaces as well as between the cluster and the internet. |
| 15 | + |
| 16 | +## Considered Options |
| 17 | + |
| 18 | +* Flannel |
| 19 | +* Cilium |
| 20 | +* Calico |
| 21 | + |
| 22 | +## Decision Outcome |
| 23 | + |
| 24 | +Chosen option: **Cilium**, because it is a fully conformant CNI plugin that works in both cloud and on-premises environments |
| 25 | +while also providing support for network policies as well as more advanced networking features. Cilium has also gained |
| 26 | +rapid adoption in the Kubernetes community and is considered the future standard of CNI plugins. |
| 27 | + |
| 28 | +Flannel was considered, but it does not support network policies which is considered a hard requirement. |
| 29 | + |
| 30 | +Calico, while supporting Network policies, falls short compared to Cilium in terms of advanced networking features. |
| 31 | + |
| 32 | +### Consequences |
| 33 | + |
| 34 | +* Good, because Cilium provides support for network policies on L7 as well as the usual L3/L4. |
| 35 | +* Good, because Cilium provides support for BGP controlplane integration, allowing for seamless integration with existing |
| 36 | + networking infrastructure. |
| 37 | +* Good, because Cilium provides a feature called Egress Gateway which allows for traffic exiting the cluster to be routed |
| 38 | + through specific nodes, facilitating smooth integration with existing security infrastructure such as IP-based firewalls. |
| 39 | +* Good, because Cilium comes with a utility called Hubble which provides deep observability into the network traffic, allowing |
| 40 | + for easy debugging and troubleshooting of network issues. |
| 41 | + |
| 42 | +* Bad, because Cilium requires you to understand both Kubernetes networking and tradition networking concepts to fully utilize |
| 43 | + its advanced features. |
| 44 | +* Bad, because Cilium does not come installed by default on any flavor of Kubernetes, requiring additional steps to |
| 45 | + install it and provide necessary custom configuration. |
0 commit comments