Was ist Istio?

URL kopieren

Istio ist ein auf Open Source basierendes Service Mesh, das steuert, wie Microservices Daten miteinander teilen. Es ergänzt und erweitert Kubernetes, um den Datenverkehr zu kontrollieren, Richtlinien durchzusetzen und die Kommunikation in einer Microservices-Umgebung zu überwachen. Istio umfasst APIs, mit denen sich die Lösung in beliebige Protokollierungsplattformen sowie Telemetrie- oder Richtliniensysteme integrieren lässt. Istio kann in vielen verschiedenen Umgebungen ausgeführt werden, ob On-Premise, in der Cloud, containerisiert oder virtualisiert.

Microservices-Architekturen teilen die Arbeit von Unternehmensanwendungen in modulare Services auf, was die Skalierung und Wartung erleichtern kann. Nimmt eine Unternehmensanwendung, die auf einer Microservices-Architektur aufbaut, an Größe und Komplexität zu, wird es schwieriger, sie zu überwachen und zu verwalten. Service Mesh kann Architekturprobleme lösen, indem es den Datenverkehr zwischen Services erfasst oder abfängt und Anfragen an andere Services ändert, umleitet oder neu erstellt.

Die Architektur von Istio besteht aus einer Data Plane und einer Control Plane. Istio verwendet Envoy Proxies. Dabei handelt es sich um hochleistungsfähige Proxies, die Datenverkehr für jeden Service innerhalb des Service Mesh vermitteln. In der Data Plane können Entwicklerinnen und Entwickler einem Service Istio-Support hinzufügen, indem sie einen Sidecar Proxy innerhalb der Umgebung bereitstellen. Diese Sidecar Proxies befinden sich neben Microservices und leiten Anfragen von anderen Proxies und an andere Proxies weiter. Diese Proxies bilden zusammen ein Mesh-Netzwerk, das die Netzwerkkommunikation zwischen Microservices abhört. Die Control Plane managt und konfiguriert Proxies für die Weiterleitung des Datenverkehrs. Außerdem konfiguriert sie Komponenten dafür, Richtlinien durchzusetzen und Telemetriedaten zu erfassen.

Red Hat Ressourcen

Datenverkehrsmanagement

Istio bietet eine fein abgestufte Steuerung des Datenverkehrsflusses zwischen Services. Es verfügt über fortschrittliche Funktionen für das Routing des Datenverkehrs, einschließlich der Unterstützung verschiedener Test- und Deployment-Methoden, wie: 

  • A/B-Tests, bei denen 2 Releases miteinander verglichen werden.
  • Canary Deployment bedeutet das Release eines kleineren Test-Deployments.
  • Blue/Green Deployment bedeutet, dass 2 getrennte, identische Umgebungen erstellt werden, um Ausfallzeiten zu verringern und Risiken zu minimieren. 

Istio übernimmt auch das Load Balancing zwischen den Serviceinstanzen. Das heißt, dass bei Istio der von einem Service ausgehende Datenverkehr von seinem Sidecar Proxy abgefangen wird. Der Proxy leitet die Anfrage auf der Grundlage der in der Control Plane definierten Routing-Regeln an das jeweilige Ziel weiter.

Service Discovery und Resilienz 

Istio umfasst Funktionen zur automatischen Erkennung von Services im Mesh. Es kann Fault Injection-Tests durchführen, um Fehlerszenarien zu simulieren und zu beurteilen, wie sich ein System unter ungewöhnlichen Bedingungen verhält. Istio verfügt über Resilienzmechanismen wie Wiederholungen, Timeouts und Circuit Breaking. Die Control Plane verfolgt die Serviceinstanzen und ihre Standorte. Wenn eine neue Serviceinstanz gestartet wird, wird sie bei der Control Plane registriert.

Beobachtbarkeit und Erweiterbarkeit

Istio sorgt für Beobachtbarkeit und Erweiterbarkeit. Es bietet Distributed Tracing durch Integrationen mit Tools wie Jaeger oder Zipkin sowie Metriken und Telemetrie mit Prometheus. Es enthält detaillierte Service Level Dashboards zur Visualisierung der Kommunikation zwischen den Services. Sidecar Proxies sammeln Metriken wie die Anzahl der Anfragen, Latenzzeiten und Fehlerraten und senden sie an die Control Plane oder an Überwachungstools. Istio kann mit externen Systemen wie Überwachungstools, Protokollierungssystemen und benutzerdefinierten Richtlinien-Engines integriert werden, wodurch neue Fähigkeiten und Funktionen zum Service Mesh hinzugefügt werden können.

Sicherheit und Durchsetzung von Richtlinien

Durch gegenseitige Authentifizierung der beiden Parteien bietet mTLS (Mutual Transport Layer Security) Datenschutz und Sicherheit zwischen 2 Anwendungen. In einem TLS-Modell erfolgt die Authentifizierung in eine Richtung – der Server authentifiziert den Client. Bei mTLS authentifizieren sich der Client und der Server bzw. die Website und der Webbrowser gegenseitig. Istio verwendet mTLS für die sichere Kommunikation von Service zu Service und nutzt außerdem RBAC (Role-based Access Control) und Richtlinien zur Sicherung von APIs. Darüber hinaus kommen Zertifikatsmanagement und automatische Schlüsselrotation zum Einsatz.

Istio zentralisiert die Konfiguration für Servicerichtlinien wie Quotas, Durchsatzbeschränkungen und Authentifizierung/Autorisierung. Dies ermöglicht Ihnen eine fein abgestimmte Kontrolle über Serviceinteraktionen durch Zugriffsrichtlinien. Richtlinien für Authentifizierung, Durchsatzbeschränkungen oder Zugriffskontrolle werden auf Proxy-Ebene durchgesetzt, wodurch die Konsistenz zwischen den Services gewährleistet wird.

Mehr über Istio auf Red Hat Developer erfahren

Istio enthält den Ambient-Modus, einen neuen Modus für die Data Plane, der manchmal auch als „Sidecar-less“ bezeichnet wird, weil Workload-Pods im Ambient-Modus keine Sidecar Proxies mehr benötigen, um Teil des Meshes zu sein. Im Ambient-Modus werden die Sidecar Proxies durch eine in die Infrastruktur integrierte Data Plane ersetzt, die die Zero Trust-Sicherheit, die Telemetrie und das Datenverkehrsmanagement von Istio aufrechterhält. Mit der Entfernung von Sidecars reduziert der Ambient-Modus auch die für die CPU erforderlichen Infrastrukturressourcen sowie den Speicherbedarf. Im normalen Modus von Istio kontaktiert der Envoy Proxy jeden Anwendungs-Pod, aber im Ambient-Modus bleiben die Anwendungs-Pods unberührt und verfügen über ihre eigenen Anwendungs-Container. 

Das Service Mesh von Istio kann zur Erfüllung verschiedener spezifischer Ziele und Aufgaben eingesetzt werden. Im Folgenden finden Sie eine Reihe von Use Cases für Istio und Beispiele dafür, wie Service Mesh ein Unternehmen beim Erreichen seiner Ziele unterstützen kann. 

Kontrolle des Datenverkehrs bei Microservices

Eine große E-Commerce-Plattform bietet häufige Aktualisierungen ihrer Services an, wie Warenkorbfunktionen, Zahlungsoptionen und Warenbestand. Mit einem Service Mesh kann das Unternehmen neue Funktionen über Canary Deployments schrittweise für eine Untergruppe von Nutzenden einführen. Mit Blue/Green Deployments kann der Datenverkehr von der alten auf die neue Version verlagert werden, ohne dass es zu Ausfallzeiten oder Unterbrechungen für die Nutzenden kommt. A/B-Tests helfen dem Unternehmen, einen bestimmten Prozentsatz des Datenverkehrs an verschiedene Serviceversionen zu leiten.

Sichere Service to Service-Kommunikation

Ein Finanzdienstleistungsunternehmen verarbeitet sensible Benutzerdaten über mehrere Services hinweg, um Konten zu verwalten und betrügerische Aktivitäten aufzudecken. Mit Service Mesh kann mTLS für eine verbesserte Sicherheit zur Verschlüsselung der Kommunikation zwischen Services eingesetzt werden. Das Service Mesh bietet auch granulare RBAC für die Interaktion zwischen den Services.

Resilienz und Fehlertoleranz

Eine Videostreaming-Plattform möchte eine unterbrechungsfreie Wiedergabe sicherstellen, auch wenn ein bestimmter Service ausfällt oder langsam arbeitet. Die Verwendung eines Service Meshes bietet Circuit Breaking-Funktionen, um das Senden von Anfragen an ausgefallene Services automatisch zu beenden. Bei Wiederholungen mit exponentiellem Backoff werden fehlgeschlagene Anfragen auf intelligente Weise zur Wiederholung angewiesen. Service Mesh Load Balancing hilft bei der Verteilung des Datenverkehrs auf intakte Serviceinstanzen. 

Beobachtbarkeit und Überwachung

Eine SaaS-Plattform (Software as a Service), die auf Kubernetes ausgeführt wird, muss Latenzprobleme bei Dutzenden von Microservices diagnostizieren. Ein Service Mesh ermöglicht Distributed Tracing, das es Entwicklungsteams erlaubt, Anfragen serviceübergreifend zu verfolgen. Außerdem bietet es Echtzeittelemetrie, einschließlich Fehlerraten und Datenverkehrsmuster.

API-Gateway-Integration

Ein API-Gateway wird verwendet, um Services für externe Clients zugänglich zu machen, während interne Services innerhalb des Meshes kommunizieren. Mit einem Service Mesh kann die Kommunikation zwischen internen Services gesichert werden, während der externe Datenverkehr durch das API-Gateway verläuft. Durch die einheitlich Anwendung von Richtlinien im Service Mesh können Unternehmen sicher sein, dass Regeln wie Durchsatzbeschränkungen für die internen Services einheitlich durchgesetzt werden.

Einhaltung gesetzlicher Vorschriften

Ein Gesundheitsdienstleister muss die Anforderungen des Health Insurance Portability and Accountability Act (HIPAA) für eine sichere Datenübertragung erfüllen. Mit einem Service Mesh kann der Dienstleister Verschlüsselungsstandards wie TLS durchsetzen. Service Mesh bietet auch detaillierte Auditprotokolle der Servicekommunikation für Compliance und Dokumentation.

Dynamische Umgebungen

Ein Spieleunternehmen skaliert seine Services häufig während der Hauptspielzeiten oder bei Werbeveranstaltungen. Ein Service Mesh kann Datenverkehr automatisch erkennen und zu neu erstellten Serviceinstanzen leiten. Auch bei Skalierungsvorgängen sorgt das Service Mesh für eine konsistente Performance.

Zur Technologievorschau zu Red Hat OpenShift Service Mesh 3.0

Red Hat® OpenShift® Service Mesh basiert auf dem Istio-Projekt und adressiert eine Vielzahl von Problemen und Use Cases in einer Microservices-Architektur, indem es einen zentralisierten Kontrollpunkt in einer Anwendung erstellt. OpenShift Service Mesh fügt eine transparente Schicht zu bestehenden verteilten Anwendungen hinzu, ohne dass dafür Änderungen am Anwendungscode erforderlich sind. Das Mesh bietet eine einfache Möglichkeit, ein Netzwerk aus bereitgestellten Services zu erstellen, das Discovery, Load Balancing, Service to Service-Authentifizierung, Fehlerbehebung, Metriken und Überwachung bietet.

Red Hat OpenShift Service Mesh ist getestet und für Red Hat OpenShift optimiert. Es bietet Kompatibilität mit OpenShift-spezifischen Features wie Operatoren und CI/CD-Pipelines (Continuous Integration/Continuous Delivery). Hinzu kommen der Red Hat Unternehmens-Support sowie regelmäßige Updates und Patches zur Wahrung der Sicherheit und Stabilität. Der Betrieb von OpenShift Service Mesh über zahlreiche Red Hat OpenShift Cluster hinweg schafft Konsistenz zwischen Hybrid Cloud- oder Multi Cloud-Umgebungen. Es erleichtert die Mandantenfähigkeit, sodass Unternehmen getrennte Service Meshes für verschiedene Teams oder Workloads verwalten können. Die enthaltenen Sicherheitsfunktionen aktivieren standardmäßig mTLS für alle Services und lassen sich für vertrauenswürdige Funktionen zur Authentifizierung und Autorisierung mit OAuth von Red Hat OpenShift integrieren.

Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist InstructLab? | KI-Modelle mit Open Source optimieren

Erfahren Sie, was InstructLab ist, wie es große Sprachmodelle (LLM) mit Open Source verbessert und warum es die Entwicklung effizienter KI-Systeme erleichtert.

Was ist Docker? Docker Container und Virtualisierung

Erfahren Sie, was Docker ist und wie es die Anwendungsbereitstellung durch die Virtualisierung von Containern unterstützt. Container-Technologie leicht erklärt

Ansible im Vergleich zu Chef: Was Sie wissen müssen

Automatisierungstools: Chef vs. Ansible. Passt Ansible oder Chef besser zu Ihren IT-Anforderungen? Ähnlichkeiten und Unterschiede von Ansible und Chef im Detail

Ressourcen zu Open Source

Verwandte Artikel