Definition

Linkerd

Linkerd ist ein von Buoyant entwickelter Open-Source-Netzwerk-Proxy, der als Service Mesh installiert wird. Linkerd ist eines der ersten Produkte, das als Service Mesh bezeichnet wurde und unterstützt Plattformen wie Docker und Kubernetes.

In der Informationstechnologie ist ein Service Mesh eine dedizierte Infrastrukturschicht, die dazu dient, die Service-to-Service-Kommunikation zu steuern und die Kommunikation von verschiedenen Anwendungsteilen ermöglicht. Service Meshes werden typischerweise in Cloud-basierten Anwendungen, Containern und Microservices verwendet.

Bei bis zu Hunderten von Diensten, die in einer Microservice-Anwendung miteinander kommunizieren, kann der Überblick schnell verloren gehen. Linkerd kann als Cloud-Orchestrierungstool dienen, um die Kommunikation zwischen diesen Diensten zu sichern, indem es Funktionen wie Lastausgleich, Diensterkennung, Proxy-Integration und -Transparenz, adaptives Routing, Fehlerwiederherstellung, Schaltungsunterbrechung und Instrumentierung bereitstellt.

Linkerd wurde entwickelt, um Probleme im Zusammenhang mit dem Betrieb und der Verwaltung großer Anwendungen und Systeme zu lösen. Die Interaktion zwischen Diensten ist eine kritische Komponente des Runtime-Verhaltens einer Anwendung. Daher bietet Linkerd Entwicklern durch die Bereitstellung einer Abstraktionsschicht zum Steuern dieser Kommunikation mehr Transparenz und Zuverlässigkeit. Ohne eine dedizierte Kontrollebene kann es schwierig sein, Anwendungsprobleme und -ausfälle zu messen und zu diagnostizieren.

So funktioniert Linkerd

Linkerd läuft als eigenständiger Proxy, ist nicht auf bestimmte Sprachen oder Bibliotheken angewiesen und kann in Containern oder Microservices verwendet werden. Die beiden gängigen Bereitstellungsmodelle für Linkerd sind pro Host und als Sidecar.

Bei der Bereitstellung pro Host kann eine Linkerd-Instanz an einen physischen oder virtuellen Host angehängt werden. Dadurch läuft der gesamte Hostverkehr jeder Anwendungsdienstinstanz über die Linkerd-Instanz.

Das Bereitstellen von Linkerd als Sidecar ermöglicht das Installieren einer Linkerd-Instanz pro Instanz jedes Anwendungsdienstes. Das ist nützlich für containerbasierte Anwendungen. Anwender können Linkerd beispielsweise in einer Microservice-Anwendung nutzen, die Docker-Container oder Kubernetes-Pods verwendet.

Linkerd kann über eine von drei Konfigurationen mit Anwendungsdiensten kommunizieren:

  • Service-to-Linkerd: Jede Serviceinstanz leitet den Verkehr durch ihre entsprechende Linkerd-Instanz, die dann weitere Verkehrsregeln handhabt.
  • Linkerd-to-Service: Linkerd-Sidecars nehmen Datenverkehr entgegen und leiten ihn an die entsprechende Dienstinstanz, anstatt dass Dienstinstanzen Datenverkehr direkt empfangen.
  • Linkerd-zu-Linkerd: Eine Kombination der Dienst-zu-Linkerd- und Linkerd-zu-Service-Konfigurationen, die eingehenden Datenverkehr mit der Linkerd-Instanz bedient, die dann den Datenverkehr an die entsprechende Dienstinstanz weiterleitet. Anschließend leitet die Dienstinstanz ausgehenden Datenverkehr zurück über die Linkerd-Instanz.

Vorteile von Linkerd

Zu den Vorteilen von Linkerd gehören:

  • vereinfacht die Kommunikation zwischen Diensten in Microservices und Containern.
  • macht den Prozess der Dokumentation dessen, wie Teile einer Anwendung interagieren, überschaubarer.
  • bietet mehr Transparenz und Kontrolle durch das Enkoppeln der Kommunikation vom Hauptanwendungscode.
  • gibt Anwendungsmanagern die Möglichkeit, Kommunikations- und Mechanikprobleme zu beheben, ohne die Anwendung selbst zu ändern.
  • bietet allgemeine Service-Mesh-Funktionen wie latenzbewusstes Load-Balancing, Serviceerkennung, Tracing und Instrumentierung.
  • ermöglicht Anbietern zu wählen, welche Programmiersprache für ihren Dienst am besten geeignet ist.
  • Macht den Anwendungscode effizienter und einfacher zu skalieren.

Linkerd versus Istio

Istio ist ein Open-Source-Service-Mesh, das von Google, IBM und Lyft betreut wird. Istio ist als universelle Steuerungsebene konzipiert, die ursprünglich für die Verwendung mit Kubernetes entwickelt wurde, aber erweitert wurde, um mehr verschiedene Plattformen zu unterstützen.

Zu den von Istio bereitgestellten Funktionen gehören Load Balancing, Identitäts- und Schlüsselverwaltung, Fehlerinjektion, Hybridbereitstellung, Dienst-zu-Dienst-Authentifizierung, Überwachung und Protokollierung. Darüber hinaus bietet Istio eine automatische Sidecar-Injektion, mit der benutzererstellten Pods ein Sidecar-Proxy hinzugefügt werden kann.

Diese Definition wurde zuletzt im Juni 2021 aktualisiert

Erfahren Sie mehr über Netzwerksoftware