Containerisierung: Cilium 1.9 führt Türsteher und neuen Load Balancer ein

Das Maglev Load Balancing soll eine konsistente Kommunikation sicherstellen. Außderm lassen sich Quellen oder Ziele über Richtlinien komplett blockieren.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Das Open-Source-Werkzeug Cilium zum Bereitstellen abgesicherter Netzwerkverbindungen zwischen containerisierten Anwendungen ist in Version 1.9 erschienen. Das Release arbeitet mit dem Maglev Load Balancer von Google zusammen und führt Deny Network Policies ein, um Richtlinien zum vollständigen Blockieren bestimmter Verbindungen aufzustellen. Außerdem lässt sich Cilium nun auf beliebigen VM- oder Bare-Metal-Knoten verwenden.

Die im Juni erschienene Version 1.8 brachte bereits eine grundlegende Erweiterung für das Load Balancing mit, indem sie auf den im Linux Kernel verankerten eXpress Data Path (XDP) setzt, um die CPU zu entlasten. Das aktuelle Release soll die Kommunikation zum Backend verbessern und setzt dafür auf den von Google entwickelten Maglev Load Balancer.

Der bisherige Load-Balancing-Ansatz über Cilium oder kube-proxy sorgt zwar für eine ausfallsichere Kommunikation im Cluster, aber nicht garantiert zu einem konsistenten Backend. Der Load Balancer wählt einen zufälligen Pfad über die Knoten und stellt offenbar sicher, dass der Verkehr stabil bleibt. Wenn ein Knoten ausfällt, wählt der Load Balancer einen neuen Pfad wiederum zufällig aus. Dabei hat der Load-Balancing-Knoten jedoch keine Information über das ursprünglich gewählte Backend und wählt potenziell ein neues aus, was dazu führen kann, dass die Kommunikation zwischen dem Client und dem neuen Backend von vorne beginnen muss.

Maglev versucht beim Ausfall von Load-Balancing-Knoten die Verbindung zum ursprünglichen Backend wiederherzustellen.

(Bild: Cilium)

Maglev nutzt einen Hashing-Algorithmus für eine Lookup Table, damit jeder Load-Balancing-Knoten eine konsistente Sicht auf die Backends hat. Auf die Weise kann ein beim Ausfall eines Knotens einspringender Ersatz die Verbindung zum ursprünglichen Backend herstellen. Der Preis für die stabilere Kommunikation und verbesserte Resilienz ist ein höherer Speicherbedarf für die Lookup Tables. Daher lässt sich neben dem neuen maglev Datapath für den eBPF Load Balancer (erweiterter Berkeley Packet Filter) nach wie vor der random-Pfad verwenden.

Eine weitere Neuerung ist die Deny-based Network Policy, die alle anderen Netzwerkrichtlinien überstimmt. Damit können Administratoren einzelne Quellen oder Ziele komplett blockieren und so beispielsweise auf Angriffe von bestimmten Entities reagieren.

Cilium kann über Richtlinine bestimmten Entities die Kommunikation komplett verweigern.

(Bild: Cilium)

Nennenswert ist zudem, dass Version 1.9 neuerdings Workloads außerhalb eines Kubernetes-Clusters integrieren kann. Auf die Weise verwaltet Cilium beliebige Knoten auf physischen Servern oder in Form von Virtual Machines. Außerdem verbessert das Release das Zusammenspiel mit OpenShift, und die Dokumentation enthält neuerdings einen speziellen Leitfaden zur Installation auf der Kubernetes-Distribution OpenShift OKD.

Das Open-Source-Tool Cilium bietet abgesicherte Netzwerkverbindungen zwischen containerisierten Anwendungen. Es ist kompatibel zum Container Networking Interface (CNI) und bietet zahlreiche zusätzliche Funktionen unter anderem zum Umsetzen von Policies sowie für Services- und Load Balancing. Im August hatte Google für die Kubernetes Engine (GKE) eine Dataplane V2 angekündigt, die auf eBPF und Cilium setzt.

Weitere Neuerungen in Version 1.9 wie die Mutual-TLS-Authentifizierung für die Observability-Plattform Hubble lassen sich dem Cilium-Blog entnehmen.

(rme)