Istio ist ein Open-Source-Service-Mesh, das sich transparent auf bestehende verteilte Anwendungen auflagert. Die leistungsstarken Funktionen von Istio bieten eine einheitliche und effizientere Möglichkeit, Dienste zu sichern, zu verbinden und zu überwachen. Istio ist der Weg zum Lastausgleich, zur Service-zu-Service-Authentifizierung und zur Überwachung – mit wenigen oder keinen Service-Code-Änderungen.
Ausführliche Informationen zur Verwendung von Istio finden Sie unter istio.io
Um Fragen zu stellen und Hilfe von unserer Community zu erhalten, besuchen Sie Github-Diskussionen
Um zu erfahren, wie Sie sich an unserer gesamten Community beteiligen können, besuchen Sie unsere Community-Seite
In dieser README-Datei:
Einführung
Repositories
Problemmanagement
Darüber hinaus finden Sie hier einige weitere Dokumente, die Sie möglicherweise lesen möchten:
Istio Community – beschreibt, wie Sie sich am Istio-Projekt beteiligen und dazu beitragen können
Istio-Entwicklerhandbuch – erklärt, wie man eine Istio-Entwicklungsumgebung einrichtet und verwendet
Projektkonventionen – beschreibt die Konventionen, die wir innerhalb der Codebasis verwenden
Schnellen und schlanken Code erstellen – leistungsorientierte Ratschläge und Richtlinien für die Codebasis
Viele weitere nützliche Dokumente finden Sie in unserem Wiki.
Istio ist eine offene Plattform, die eine einheitliche Möglichkeit bietet, Microservices zu integrieren, den Datenverkehr über Microservices hinweg zu verwalten, Richtlinien durchzusetzen und Telemetriedaten zu aggregieren. Die Kontrollebene von Istio bietet eine Abstraktionsschicht über der zugrunde liegenden Cluster-Management-Plattform, wie z. B. Kubernetes.
Istio besteht aus folgenden Komponenten:
Envoy – Sidecar-Proxys pro Mikrodienst zur Abwicklung des ein-/ausgehenden Datenverkehrs zwischen Diensten im Cluster und von einem Dienst zu externen Diensten. Die Proxys bilden ein sicheres Microservice-Netz, das zahlreiche Funktionen wie Erkennung, umfassendes Layer-7-Routing, Leistungsschalter, Richtliniendurchsetzung und Telemetrieaufzeichnungs-/Berichtsfunktionen bietet.
Hinweis: Das Service Mesh ist kein Overlay-Netzwerk. Es vereinfacht und verbessert die Art und Weise, wie Microservices in einer Anwendung über das von der zugrunde liegenden Plattform bereitgestellte Netzwerk miteinander kommunizieren.
Istiod – Die Istio-Kontrollebene. Es bietet Diensterkennung, Konfiguration und Zertifikatsverwaltung. Es besteht aus folgenden Unterkomponenten:
Pilot – Verantwortlich für die Konfiguration der Proxys zur Laufzeit.
Citadel – Verantwortlich für die Ausstellung und Rotation von Zertifikaten.
Galley – Verantwortlich für die Validierung, Aufnahme, Aggregation, Transformation und Verteilung der Konfiguration innerhalb von Istio.
Operator – Die Komponente bietet benutzerfreundliche Optionen zum Betrieb des Istio-Service-Mesh.
Das Istio-Projekt ist auf einige GitHub-Repositories aufgeteilt:
istio/api. Dieses Repository definiert APIs auf Komponentenebene und gängige Konfigurationsformate für die Istio-Plattform.
istio/community. Dieses Repository enthält Informationen über die Istio-Community, einschließlich der verschiedenen Dokumente, die das Istio-Open-Source-Projekt regeln.
istio/istio. Dies ist das Hauptcode-Repository. Es hostet die Kernkomponenten, Installationsartefakte und Beispielprogramme von Istio. Es beinhaltet:
istioctl. Dieses Verzeichnis enthält Code für das Befehlszeilendienstprogramm istioctl .
Pilot. Dieses Verzeichnis enthält plattformspezifischen Code zum Auffüllen des abstrakten Dienstmodells, zum dynamischen Neukonfigurieren der Proxys, wenn sich die Anwendungstopologie ändert, sowie zum Übersetzen von Routing-Regeln in Proxy-spezifische Konfigurationen.
Sicherheit. Dieses Verzeichnis enthält sicherheitsrelevanten Code, einschließlich Citadel (fungiert als Zertifizierungsstelle), Citadel-Agent usw.
istio/proxy. Der Istio-Proxy enthält Erweiterungen des Envoy-Proxys (in Form von Envoy-Filtern), die Authentifizierung, Autorisierung und Telemetrieerfassung unterstützen.
istio/ztunnel. Das Repository enthält die Rust-Implementierung der ztunnel-Komponente von Ambient Mesh.
istio/client-go. Dieses Repository definiert automatisch generierte Kubernetes-Clients für die programmgesteuerte Interaktion mit Istio-Ressourcen.
Notiz
Nur die Repositorys istio/api
und istio/client-go
stellen stabile Schnittstellen zur Verfügung, die für die direkte Verwendung als Bibliotheken vorgesehen sind.
Wir verwenden GitHub, um alle unsere Fehler und Funktionsanfragen zu verfolgen. Jedes von uns verfolgte Problem verfügt über verschiedene Metadaten:
Episch . Ein Epos stellt einen Themenbereich für Istio als Ganzes dar. Epics haben einen recht breiten Anwendungsbereich und sind grundsätzlich Dinge auf Produktebene. Jede Ausgabe ist letztlich Teil eines Epos.
Meilenstein . Jeder Ausgabe ist ein Meilenstein zugeordnet. Dies ist 0,1, 0,2, ... oder „Nebulöse Zukunft“. Der Meilenstein gibt an, wann das Problem unserer Meinung nach behoben werden sollte.
Priorität . Jedes Problem hat eine Priorität, die durch die Spalte im Priorisierungsprojekt dargestellt wird. Die Priorität kann P0, P1, P2 oder >P2 sein. Die Priorität gibt an, wie wichtig es ist, das Problem innerhalb des Meilensteins anzugehen. P0 sagt, dass der Meilenstein nicht als erreicht betrachtet werden kann, wenn das Problem nicht gelöst wird.
Istio ist ein Projekt der Cloud Native Computing Foundation.