Skip to content

Commit 04c6123

Browse files
housaGertmeister
andauthored
Use Cillium for the CNI (#12)
Co-authored-by: Steffen Petersen <[email protected]>
1 parent dbceca4 commit 04c6123

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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.

docs/hardware_ready/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ In case virtualisation is chosen, the below recommendations are what you would r
1616
| Kubernetes Node Operating System | The Operating System running on each of the hosts that will be part of your Kubernetes cluster | Choosing the right OS will be the foundation for building a production-grade Kubernetes cluster | |
1717
| Storage solution | The underlying storage capabilities which Kubernetes will leverage to provide persistence for stateful workloads | Choosing the right storage solution for your clusters needs is important as there is a lot of balance tradeoffs associated with it, e.g redundancy vs. complexity | |
1818
| Container Runtime (CRI) | The software that is responsible for running containers | You need a working container runtime on each node in your cluster, so that the kubelet can launch pods and their containers | |
19-
| Network plugin (CNI) | Plugin used for cluster networking | A CNI plugin is required to implement the Kubernetes network model | |
19+
| Network plugin (CNI) | Plugin used for cluster networking | A CNI plugin is required to implement the Kubernetes network model | [Cilium](Cilium_as_network_plugin.md) |

0 commit comments

Comments
 (0)