Begriff
Cilium
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
In Kubernetes braucht man ein Netzwerk-Plugin (CNI).
Klassische Plugins (Flannel, Calico) basieren auf iptables (der alten Linux Firewall).
Bei 5.000 Services erzeugt iptables Millionen von Regeln. Das System wird langsam.
Cilium nutzt eBPF.
Es programmiert den Kernel direkt um.
Keine iptables-Regeln.
Stattdessen eine Hashtable im Kernel: "Service IP X -> Pod IP Y".
Das ist O(1). Egal ob 10 oder 10.000 Services.
Cilium ist extrem schnell, skalierbar und kann auch Security (Layer 7 Policy: "Pod A darf nur GET /api auf Pod B machen").
Merksatz: Eine Open-Source-Netzwerk- und Sicherheitslösung für Kubernetes, die auf eBPF basiert, um hochperformantes Networking, Load Balancing und Observability ohne die Limitierungen klassischer iptables-Architekturen zu bieten.
Installiere es im Cluster: cilium install.
Es ersetzt kube-proxy.
Features:
- Network Policy: "DB darf nur vom Backend erreicht werden."
- Encryption: Transparentes WireGuard/IPsec zwischen allen Pods.
- Multi-Cluster: Verbinde Cluster über Clouds hinweg (Cluster Mesh).
1. Identity-based Security
iptables arbeitet mit IPs. "Allow 10.1.1.5". In K8s ändern sich IPs ständig (Pod Restart). Cilium vergibt jedem Pod eine Identity (basierend auf Labels). "Das ist ein Frontend". Die Security-Regel lautet: "Frontend darf Backend reden". Im Kernel wird das auf Zahlen gemappt (ID 5 darf ID 6 reden). Sehr effizient.
2. Sidecar-less Service Mesh
Normales Service Mesh (Istio) braucht einen Proxy (Envoy) in jedem Pod. Frisst RAM undLatency. Cilium macht vieles davon (L4 Load Balancing, Canary, Tracing) direkt im eBPF. Für L7 (HTTP-Parsing) nutzt es immer noch einen Envoy (hinter den Kulissen), aber viel effizienter integriert.
1. XDP (eXpress Data Path) und BPF Bytecode
Die absolute Leistungseskalation erzielt Cilium, indem es an vorderster Kernel-Front einklinkt: beim XDP (eXpress Data Path). Noch bevor die Linux-Network-Stack (SKB) überhaupt das RAM-Paket allokiert oder TCP/IP Header ausliest, fischt das compilierte BPF-Programm (in C programmiert und als Clang-Bytecode zur Laufzeit gesichert injiziert) das Raw-Frame direkt vom Ringleitungsbuffer der Netzwerkkarte ab. Ist es eine DDoS-Attacke oder ein Drop-Policy-Match, verwirft das Mini-Programm das Paket in unter 2 Nanosekunden (XDP_DROP), ohne dass die CPU des Hostsystems auch nur ins Schwitzen kommt.
2. Socket-basiertes In-Cluster Load-Balancing
Wenn in Kubernetes Pod A (Frontend) einen iptables-basierten Request an Service B (Backend, ClusterIP) sendet, wird das Paket an den virtuellen Bridge-Device hochgeleitet. kube-proxy ändert via SNAT/DNAT die IPs tief runter auf MAC-Schicht. Das Paket wird zurückgeschickt und im Kernel geroutet.
Cilium eliminiert dieses Ping-Pong. Es verhakt sich per eBPF Programm direkt auf die connect() System-Call-Schicht (Socket-Hooks) des Kernels der Frontend-App. Die Verbindung wird direkt von der Source-App transparent an das End-Zieldestinations-IP geschrieben. Der Traffic fließt in einer direkten Peer-to-Peer Pipeline, was die Paketprozessierung mikroskalig und absolut "NAT-less" macht, wodurch der Overhead im Cluster signifikant verdampft.
3. Cluster Mesh und Multi-Cloud Dataplanes
Während eine Ingress in die Cloud führt, wollen Banken aus Resilienzgründen in AWS, On-Premise und Azure simultan leben. Cilium spannt ein Cluster Mesh. Hierbei baut es automatisierte IPsec/WireGuard L3-VPN-Tunnel quer durch die öffentlichen Netzwerke direkt zu den Cilium-Agents anderer Cluster (ganz ohne überlagernde Router-Infrastruktur BGP einzupeitschen). K8s Services, Endpoint-Listen und IP-Zuteilungen fließen synchron über den verteilten Key-Value Store (etcd) in allen RZ-Zonen ab. Fällt das AWS-Backend aus, switcht der Envoy-Proxy (durch eBPF Layer 4 Injektion gesteuert) den Load-Balance Traffic nahtlos, ohne Zutun, ins On-Premise Subnetz ab.
Quick-Check
Unterschied zu Calico?
Calico basierte traditionell auf iptables (hat jetzt aber auch einen eBPF-Modus). Cilium war "eBPF native" von Tag 1.Performance?
Cilium mit XDP kann Pakete fast so schnell routen wie reine Hardware. Deutlich schneller als iptables bei vielen Services.Hubble?
Das UI von Cilium. Es zeigt dir die Netzwerk-Map: "Wer redet mit wem? Wo werden Pakete gedroppt?". Basiert auf eBPF-Daten.