Container: Cilium 1.4 bringt Multi-Cluster Service Routing für Kubernetes

Das Netzwerk-Tool Cilium unterstützt sogenannte Global Services, die sich als Kubernetes-Dienst samt Backend Pod in mehreren Clustern nutzen lassen.

In Pocket speichern vorlesen Druckansicht
Containerisierung: Cilium 1.3 erweitert Anbindung über Evnoy
Lesezeit: 2 Min.
Von
  • Matthias Parbel

Das mit dem Container Networking Interface (CNI) und Dockers libnetwork kompatible Netzwerk-Tool Cilium liegt ab sofort in Version 1.4 vor. Neben zahlreichen Fehlerbereinigungen und Verbesserungen haben die Macher das Tool um eine Reihe neuer Funktionen erweitert, die zum Teil allerdings noch Betastatus haben – etwa die Flannel-Integration oder die Unterstützung von IPVLAN.

Die Möglichkeit des Multi-Cluster Service Routing für Kubernetes dürfte zu den wichtigsten Neuerungen in Cilium 1.4 zählen. Bereits in der Vorversion 1.3 hatten die Entwickler dafür die Grundlagen geschaffen und Pod IP Routing zwischen verschiedenen Clustern eingeführt. Cilium 1.4 erweitert das Konzept auf Global Services, die sich an den Standarddiensten von Kubernetes orientieren. Anwender können die Services in der Containerorchestrierung mit jeweils identischem Namen und Namespace für jeden Cluster festlegen und müssen lediglich einen Vermerk ergänzen, der den Services als global markiert.

Multi-Cluster Service Routing für Kubernetes: Cilium 1.4 führt Global Services ein.

(Bild: Cilium.io)

Die Global Services können dann mit Backend Pods in verschiedenen Clustern kommunizieren. Dabei lassen sich die Health-Check-Informationen von Kubernetes nutzen, um Service-Backends automatisch hinzuzufügen oder zu entfernen – je nach Zustand und Skalierung der Pods. Die Control Plane baut auf etcd auf und lehnt sich damit ebenfalls an den Design Pattern von Kubernetes an, wenn es um Belastbarkeit und Einfachheit geht. Jeder Cluster betreibt seinen eigenen etcd-Cluster. Um sicherzustellen, dass der Ausfall eines Clusters nicht die anderen berührt, erfolgt die Replikation nur lesend.

Aufbauend auf der Linux-Kernel-Technologie Berkeley Packet Filter (BPF) arbeitet Cilium CNI bisher primär mit einem auf veth basierenden Datapath-Modus, um von mehr Flexibilität bei der Verwaltung der BPF-Programme zu profitieren. Um eine Alternative für einen stärker auf geringere Latenz optimierten Datapath zu eröffnen, steht ab Cilium 1.4 auch IPVLAN zur Verfügung. Die noch im Betastadium angelegte Implementierung leidet noch unter verschiedenen Einschränkungen, die erst in künftigen Releases behoben werden sollen. Es fehlt derzeit unter anderen noch an Unterstützung für L7 Policy Enforcement via Proxy, auch NAT64 lässt sich noch nicht aktivieren.

Einen vollständigen Überblick aller Neuerungen und Details zu den Verbesserungen in Cilium 1.4 bieten die Release Notes. Das Projekt ist außerdem auf GitHub vertreten. Cilium 1.4 steht als Container-Image docker.io/cilium/cilium:v1.4.0 zur Verfügung. (map)