Service-Mesh: Linkerd 2.9 rüstet mit Multi-Core-Runtime auf

Das Update ermöglicht es, Linkerd unter anderem alle TCP-Verbindungen im Cluster während der Installation transparent zu verschlüsseln und zu authentifizieren.

In Pocket speichern vorlesen Druckansicht

Shenzhen, Hafen von Yantian

(Bild: zhangyang13576997233 / Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Das Service-Mesh Linkerd liegt ab sofort in Version 2.9 vor. Das von der Cloud Native Computing Foundation (CNCF) verwaltete Projekt führt im neuen Release neben ARM-Unterstützung eine Multicore-Runtime ein.

Linkerd 2.9 erweitert die mTLS-Unterstützung (mutual TLS). Das befähigt Linkerd dazu, alle TCP-Verbindungen im Cluster im Moment der Installation transparent zu verschlüsseln und zu authentifizieren. Bisher bot das Service-Mesh das nur für HTTP-Traffic an. Mit der Neuerung soll Linkerd alle TCP-Verbindungen zwischen den vernetzten Endpunkten automatisch verschlüsseln und validieren. Dazu zählt auch die automatische Rotation der Pod-Zertifikate alle 24 Stunden und die automatische Verknüpfung der TLS-Identität an den Kubernetes ServiceAccount des Pods.

Diese Neuerung ist gemäß dem Ankündigungsbeitrag ein großer Schritt in Richtung Zero-Trust-Sicherheit für Kubernetes-Nutzer. Durch die Verschlüsselung und Authentifizierung bis zur Pod-Grenze (der kleinsten Ausführungseinheit in Kubernetes) bietet Linkerd "Verschlüsselung im Transit" in einer überarbeiteten Form. Zukünftige Versionen sollen das "Security-First Featureset" um Richtlinien und Durchsetzung erweitern, die auf den kryptografischen Identitäts- und Vertraulichkeitsgarantien von mTLS basieren.

Die aktuelle Version des Service-Mesh nimmt eine Aufrüstung des Proxy zu einer Multi-Core-Runtime vor, um den Durchsatz und die Nebenläufigkeit für einzelne Pods zu steigern. Laut Blog-Beitrag ist Linkerd für seine Geschwindigkeit und dem im Vergleich zu anderen Service-Meshes wie Istio niedrigen Speicherbedarf bekannt, was wohl auf die Verwendung des in Rust geschriebenen "micro-proxy" zurückzuführen ist. Bisher war der Einsatz einer Single-Core-Runtime ausreichend. Die Aufrüstung auf eine Multi-Core-Laufzeit soll zu weiteren Leistungsverbesserungen führen, die das Entwicklerteam hinter dem Service-Mesh in den nächsten Wochen mit Benchmarks veranschaulichen möchte.

Darüber hinaus bietet das Release ARM-Unterstützung, was Entwicklern beispielsweise die Kostenreduzierung mit ARM-basierten Recheneinheiten wie AWS Graviton oder die Ausführung von Linkerd auf einem Raspberry-Pi-Cluster ermöglichen soll. Darüber hinaus hält Linkerd 2.9 Support für Service-Topologie-Features von Kubernetes ein. Dadurch bekommen Entwickler die Möglichkeit, Routing-Präferenzen wie "Request should stay in this node" oder "Request should stay in this region" einzuführen. Das wiederum soll zu erheblichen Leistungssteigerungen und Kosteneinsparungen führen, insbesondere bei großen Anwendungen.

Die Fähigkeit eines Service-Mesh, komplexe Container zu vereinfachen und die Netzwerkfunktionen zu verbessern, macht die Technik zu einer wichtigen Infrastrukturebene. In einem Service-Mesh wird jede Service-Instanz mit der eines Reverse-Proxy-Servers gekoppelt. Die Service-Instanz und der Sidecar-Proxy teilen sich einen Container, der wiederum von einem Container-Orchestrierungswerkzeug verwaltet wird. Die Service-Proxys sind für die Kommunikation mit anderen Service-Instanzen verantwortlich und können Funktionen wie Service-Erkennung, Lastausgleich, Authentifizierung und Autorisierung und sichere Kommunikation unterstützen.

Im Service-Mesh bilden die Service-Instanzen und ihr Sidecar-Proxy die Datenebene, die neben zudem die Verarbeitung und Beantwortung von Anfragen umfasst. Das Service-Mesh beinhaltet auch eine Ebene zur Steuerung der Interaktion zwischen den Diensten, die von ihren Sidecar-Proxies vermittelt wird.

Mehr dazu auf heise Developer

Einen vollständigen Überblick über die Neuerungen in Linkerd 2.9 bietet ein Blog-Beitrag zur Veröffentlichung. Mehr Details finden sich in den Release Notes auf GitHub.

(mdo)