Definition: Service Mesh für Kubernetes Was ist Linkerd?
Linkerd ist eine Open-Source-basierte Software und ein Projekt der Cloud Native Computing Foundation (CNCF). Mit Hilfe von Linkerd lässt sich ein Service Mesh für Kubernetes realisieren. Das Service Mesh steuert und managt die Kommunikation der verschiedenen Services einer containerisierten Microservice-Umgebung.
Anbieter zum Thema

Linkerd ist der Name einer Open-Source-basierten Software, mit der sich ein Service Mesh für Kubernetes einrichten lässt. Kubernetes ist ein Container-Orchestrierungstool. Linkerd und Kubernetes ermöglichen im Zusammenspiel die Realisierung cloud-nativer, microservice-basierter Anwendungen. Aufgabe von Linkerd und dem Service Mesh ist es, die Kommunikation der einzelnen Services untereinander zu managen, zu steuern und zu überwachen, um für einen sicheren und zuverlässigen Informationsaustausch der Services untereinander zu sorgen.
Linkerd wurde im Jahr 2015 von ehemaligen Twitter-Mitarbeitern, die das Unternehmen Buoyant gründeten, entwickelt. Mittlerweile ist Linkerd ein von der Cloud Native Computing Foundation (CNCF) gehostetes Projekt. Die Software steht unter Apache-2.0-Lizenz und ist frei verfügbar. Um einige grundlegende Schwächen wie hoher Ressourcenbedarf und Komplexität der ersten Version Linkerd 1 zu beseitigen, wurde die Version Linkerd 2 komplett neu entwickelt. Sie konzentriert sich auf Kubernetes als Plattform und ist einfacher zu installieren und zu betreiben.
Neben Istio ist Linkerd eine der am häufigsten eingesetzten und beliebtesten Software-Lösungen zur Realisierung eines Service Meshs. Linkerd ist im Vergleich zu Istio weniger komplex und sehr schlank gehalten. Die Installation eines Service Meshs mit Linkerd erfordert keine Codeveränderungen der Kubernetes-Applikationen. Das Services Mesh kann On-Premises oder in Cloud-Umgebungen betrieben werden. Für die Kommunikation zwischen den Services verwendet Linkerd Proxies, die in Form von Sidecar Proxies jedem Service zur Seite gestellt werden. Über diese Proxies lassen sich die Verbindungen aufbauen, verschlüsseln, überwachen und im Fehlerfall wiederherstellen. Zahlreiche Unternehmen bieten professionelle Supportleistungen für Linkerd an.
Grundsätzliche Informationen zum Service Mesh
Um die Funktionsweise von Linkerd besser zu verstehen, zunächst einige grundlegende Informationen zu den Aufgaben und zum Funktionsprinzip eines Services Meshs. Ein Service Mesh ist ein konzeptioneller Architekturansatz zur Steuerung und Verwaltung der Kommunikation zwischen vielen einzelnen Services. Eine zusätzliche Infrastrukturschicht ermöglicht den sicheren und zuverlässigen Informationsaustausch der Services untereinander.
Damit bildet das Service Mesh eine stabile Funktionsbasis für cloud-native Anwendungen, die aus vielen kleinen Einzelservices (Microservices) einer containerisierten Umgebung bestehen. Das Service Mesh ist in der Lage, die Datenströme zu überwachen und zu kontrollieren. Unter anderem erfüllt das Service Mesh Aufgaben wie Lastverteilung, Traffic Management, Verschlüsselung, Authentifizierung der Services untereinander, Durchsetzung von Security-Policies, Routing der Datenströme, Wiederherstellung unterbrochener Verbindungen und vieles mehr.
Die Kommunikation innerhalb eines Service Meshs läuft über sogenannte Proxies, die jedem Service zur Seite gestellt werden. Über diese Proxies ist der komplette Verkehr steuerbar und überwachbar. Für die Services selbst verhalten sich die Proxies transparent.
:quality(80)/images.vogel.de/vogelonline/bdb/1725800/1725839/original.jpg)
Definition: Service-to-Service-Kommunikation via Sidecar Proxys
Was ist ein Service Mesh?
Das Konzept und die Funktionsweise von Linkerd
Ein mit Linkerd realisiertes Service Mesh besteht aus einer Control Plane und einer Data Plane. Die Control Plane übernimmt die Aufgabe der Konfiguration, Steuerung und Überwachung der Proxies. Über APIs, Webinterfaces und den Controller hat der Anwender Zugriff auf die Control Plane. Per User Interface lassen sich die Informationsflüsse monitoren, verändern und kontrollieren.
Die Data Plane setzt sich aus den miteinander kommunizierenden Proxies der einzelnen Services zusammen. Üblicherweise arbeiten die Proxies als sogenannte Sidecar Proxies der einzelnen Services. Auch die Per-Host-Intallation der Proxies ist möglich. In diesem Fall sind die Proxies einem physischen oder virtuellen Host zugeordnet. Sobald ein Service mit einem Sidecar Proxy versehen ist, ist er Bestandteil des Services Meshs.
Die Proxies übernehmen die komplette Abwicklung des zu sendenden oder zu empfangenden Datenverkehrs der Services. Gesteuert und überwacht werden die Proxies von der Control Plane. Verlieren sie ihre Verbindung zur Control Plane arbeiten sie mit der zuletzt bekannten Konfiguration weiter. Ist die Verbindung zur Control Plane wiederhergestellt, tauschen sie automatisch wieder Steuer-, Monitoring- und Managementinformationen aus.
Zum Funktionsumfang des Linkerd Proxies gehören die transparente Übermittlung des TCP-, HTTP- und WebSocket-Verkehrs, die Verschlüsselung der Kommunikation per TLS (Transport Layer Security), das Sammeln von Diagnose- und Telemetriedaten der Inter-Service-Verbindungen, die Lastverteilung des Datenverkehrs und einiges mehr. Die Proxies zeichnen sich durch ihre schlanke Programmierung aus und sind in Rust geschrieben.
:quality(80)/images.vogel.de/vogelonline/bdb/1603200/1603281/original.jpg)
Definition: Service Mesh, plattformunabhängig und quelloffen
Was ist Istio?
Eine kurze Abgrenzung von Linkerd und Istio
Die beiden bekanntesten und am häufigsten eingesetzten Service-Mesh-Lösungen sind Linkerd und Istio. Istio wurde gemeinsam von den Unternehmen Google, IBM und Lyft entwickelt. Die Software erschien im Jahr 2018 und steht wie Linkerd unter Apache-2.0-Lizenz. Zu den Designprinzipien von Istio gehören die Plattformunabhängigkeit, die hohe Flexibilität und die extreme Konfigurierbarkeit der Software.
Anfänglich war Istio für die Nutzung mit Kubernetes entwickelt. Heute lässt sie sich mit unterschiedlichen Plattformen und in verschiedenen Umgebungen einsetzen. Im Vergleich zu Linkerd ist Istio komplexer und etwas weniger benutzerfreundlich. Dafür eignet sich Istio im Vergleich zu Linkerd für aufwendigere und komplexere Service-Mesh-Konfigurationen. Istio ist Cloud-basiert, On-Premises und in hybriden Umgebungen nutzbar. Als Proxy verwendet Istio den Envoy Proxy, der zusammen mit den Services die Data Plane des Service Meshs bildet und von der Control Plane gesteuert wird. Wichtige Komponenten der in Form von einzelnen Microservices konzipierten Control Plane von Istio sind Mixer, Pilot, Citadel und Galley.
Die Vorteile eines Service Meshs mit Linkerd
Ein mit Linkerd realisiertes Service Mesh bietet zahlreiche Vorteile. Zu diesen Vorteilen zählen unter anderem:
- frei verfügbare Open-Source-Software,
- große Community im Netz,
- einfaches und minimalistisches Design des Service Meshs,
- mit wenig Aufwand und ohne Veränderung des Programmcodes installierbar,
- zuverlässige und hoch verfügbare Kommunikation der Services über Proxies,
- schlanker, performanter und schneller Proxy,
- sicherer Informationsaustausch der Services dank verschlüsselter Verbindungen,
- vereinfachte Konfiguration der Kommunikation der Services – Entkopplung der Service-Kommunikation vom Programmcode,
- einfaches Management und Monitoring der Inter-Service-Kommunikation,
- für Container, Kubernetes Pods, Microservices in Cloud-, On-Premises- oder hybriden Umgebungen geeignet,
- unterstützt latenzabhängiges Load Balancing,
- umfangreiche Diagnose- und Überwachungsmöglichkeiten der Verkehrsflüsse.
(ID:47147651)