Netzwerkverkehr: Cilium 1.13 leitet Übergang von der Ingress zur Gateway API ein
Für die Lastverteilung und das Routing des Netzwerkverkehrs zwischen containerisierten Anwendungen baut Cilium 1.13 auf die neue Gateway API.
Cilium 1.13 geht mit einer vollständigen Implementierung der Gateway API an den Start, die mittelfristig die Ingress API ablösen und der neue Standard für das Service Networking in Kubernetes werden soll. Laut Ankündigung der Cilium-Entwickler von Isovalent eröffnet Version 1.13 des CNCF-Projekts die Möglichkeit, das Traffic Management auf die Gateway API umzustellen. Cilium 1.13 wartet darüber hinaus mit einer Reihe weiterer Neuerungen auf, die zu erhöhter Sicherheit in der Software Supply Chain beitragen sollen.
Rollenorientiertes Design für das Traffic Management
Als Open-Source-Tool, das auf abgesicherte Netzwerkverbindungen zwischen containerisierten Anwendungen zugeschnitten ist, bietet Cilium seit Version 1.12 ein eigenes Service Mesh und baut dabei auf Kubernetes-Ressourcen wie den Envoy Proxy und die Kernel-Sandboxing-Technologie eBPF auf. Mit Implementierung der Gateway API macht das neue Release einen entscheidenden Schritt, die mit der bisherigen Ingress API verbundenen Einschränkungen zu überwinden. Die von der Kubernetes SIG-Network vorangetriebene Entwicklung der Gateway API soll erweiterte Funktionen für das Load Balancing bereitstellen – insbesondere auch in verteilten Multi-Cluster-Umgebungen. Dazu führt die Gateway API ein rollenorientiertes Design ein, das eine Trennung der Zuständigkeiten beim Erstellen und Verwalten des Traffic Managements ermöglicht, sodass sich auch unabhängig voneinander agierende Teams eine gemeinsame Netzwerkinfrastruktur besser teilen können.
Die Gateway API hat derzeit noch Betastatus (aktuelle Version 0.6.1), lässt sich in Cilium aber bereits für typische Aufgaben wie HTTP Routing, TLS Termination, HTTP Traffic Splitting/Weighting oder HTTP Header Modification nutzen. Ist ein Gateway nach folgendem Manifest angelegt
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: my-gateway
spec:
gatewayClassName: cilium
listeners:
- protocol: HTTP
port: 80
name: web-gw
allowedRoutes:
namespaces:
from: Same
können Anwendungsentwicklerinnen und -entwickler spezifische Routen für ihre Anwendungen bereitstellen:
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: http-app-1
spec:
parentRefs:
- name: my-gateway
namespace: default
rules:
- matches:
- path:
type: PathPrefix
value: /details
backendRefs:
- name: details
port: 9080
Bei der Migration von der Ingress zur Gateway API hilft das – noch experimentelle – Tool Ingress2Gateway. Weitergehende Informationen finden sich im Cilium-Gateway-API-Lab von Isovalent.
Mehr Sicherheit im Netzwerk und der Software Supply Chain
Für das Integrieren verschiedenster Identitätsmanagement-Anbieter arbeitet das Cilium-Team an einer neuen mTLS-Implementierung, die ohne Proxy auskommt. Eine wichtige Voraussetzung dafür schafft Version 1.13 mit der Einführung von mTLS auf der Datapath-Ebene. Das Service Mesh ist dadurch künftig in der Lage, Endpunkte auf Peer-Nodes im Cluster zu authentifizieren und auch die Data-Plane-Verbindungen auf Basis beiderseitiger Authentifizierung zu kontrollieren.
Einen Beitrag zur Sicherung der Software Supply Chain leistet Cilium 1.13 mit der Einführung von SBOMs (Software Bills of Materials). Sämtliche Cilium- und Tetragon-Images sind ab sofort mit Cosign signiert und enthalten eine SBOM, in der die Softwarekomponenten und deren Abhängigkeiten aufgelistet sind. Die SBOMs werden mit dem bom-Tool im SPDX-Format (Software Package Data Exchange) erstellt.
Observability mit Grafana
Von detaillierteren Einblicken in den Netzwerkverkehr profitieren Grafana-Anwenderinnen und -Anwender. Nachdem Isovalent und Grafana bereits im Herbst 2022 eine engere Partnerschaft beschlossen hatten, verschafft die Integration in Cilium eine erweiterte Observability. Das gilt zum einen für das Beobachten von Zustand und Leistung der Netzwerkverbindungen zwischen Cloud-nativen Anwendungen in Kubernetes anhand der Prometheus-Metriken, aber ebenso für die mit Grafana Tempo erfassten Tracing-Daten. Letztere umfassen in Cilium 1.13 nun auch Layer-7-HTTP-Metriken aus der auf Cilium aufsetzenden Observability-Plattform Hubble.
Mehr Details dazu sowie ein kompletter Überblick aller Änderungen im neuen Cilium-Release finden sich im Blogbeitrag von Isovalent sowie auf der Website des Cilium-Projekts.
(map)