Istio ist eine offene Technologie, die es Entwicklern ermöglicht, Netzwerke verschiedener Microservices nahtlos zu verbinden, zu verwalten und zu sichern - unabhängig von Plattform, Quelle oder Anbieter. Istio ist derzeit eines der am schnellsten wachsenden Open-Source-Projekte basierend auf Github-Mitwirkenden, und seine Stärke ist seine Community. IBM ist stolz darauf, Gründer und Mitwirkender des Istio-Projekts und Leiter der Istio Working Groups zu sein.
Um mehr über die Welt des Service Mesh zu erfahren, lesen Sie das O'Reilly E-Book Istio Explained, geschrieben von Istio Control Board Mitgliedern, Lin Sun, IBM Master Inventor und Dan Berg, IBM Distinguished Engineer.
Istio läuft ideal mit IBM Cloud® Log Analysis und IBM Cloud® Monitoring.
In den folgenden Kursen erfahren Sie, wie Sie Microservices mit IBM Cloud® Kubernetes Service und Istio verwalten.
Einrichten und Bereitstellen einer Anwendung; Skalierung und Aktualisierung von Anwendungen mit IBM Watson®-Services.
Erfahren Sie, wie 12-Faktor-Methode, Microservices und Istio im IBM Cloud Kubernetes Service arbeiten.
Installieren Sie Istio neben Microservices als Guestbook-Mock-Anwendung; Stellen Sie es in einem Cluster bereit.
Slack unsere Kubernetes-Entwickler
Sehen Sie sich die Dokumentation an. Für alles andere treten Sie einfach unserem Slack-Kanal bei und fragen Sie nach.
Istio ist ein konfigurierbarer Open-Source-Service-Mesh-Layer, der die Container in einem Kubernetes -Cluster verbindet, überwacht und sichert. Istio funktioniert nativ nur mit Kubernetes, aber seine Open-Source-Natur ermöglicht es jedem, Erweiterungen zu schreiben, mit denen Istio auf jeder Cluster-Software laufen kann.
Kubernetes ist ein Container-Orchestrierungstool, und eine Kerneinheit von Kubernetes ist ein Knoten. Ein Knoten besteht aus einem oder mehreren Containern zusammen mit anderen Komponenten. Kubernetes verwaltet die Verfügbarkeit und den Ressourcenverbrauch von Knoten und fügt Pods hinzu, wenn die Nachfrage steigt, mit dem Pod-Autoscaler. Istio fügt zusätzliche Container in den Pod ein, um Sicherheit, Verwaltung und Überwachung zu erhöhen.
Da Istio quelloffen ist, kann es auf jedem öffentlichen Cloud-Anbieter, der es unterstützt, und jeder privaten Cloud mit willigen Administratoren laufen.
Wenn Unternehmen auf Microservices umsteigen, müssen sie Dutzende oder Hunderte von Anwendungen unterstützen. Die separate Verwaltung dieser Endpunkte bedeutet, dass eine große Anzahl von virtuellen Maschinen (VMs) unterstützt wird, einschließlich des Bedarfs. Cluster-Software wie Kubernetes kann Pods erstellen und skalieren, aber Kubernetes bietet kein Routing, keine Verkehrsregeln und keine leistungsfähigen Überwachungs- oder Debugging-Tools.
Geben Sie das Service Mesh ein.
Mit der zunehmenden Zahl von Diensten steigt auch die Zahl der möglichen Kommunikationswege exponentiell an. Zwei Services verfügen nur über zwei Kommunikationspfade. Drei Dienststellen haben sechs, während 10 Dienststellen 90 haben. Ein Service Mesh bietet eine einzige Möglichkeit, diese Kommunikationspfade zu konfigurieren, indem eine Richtlinie für die Kommunikation erstellt wird.
Ein Service Mesh instrumentiert die Dienste und leitet den Kommunikationsverkehr gemäß einer vordefinierten Konfiguration. Anstatt einen laufenden Container zu konfigurieren oder Code dafür zu schreiben, kann ein Administrator dem Service Mesh die Konfiguration zur Verfügung stellen und es diese Arbeit erledigen lassen. Bisher musste dies über Webserver und Service-to-Service-Kommunikation erfolgen.
Die gebräuchlichste Methode, dies in einem Cluster zu tun, ist die Verwendung des Sidecar-Musters. Ein Sidecar ist ein neuer Container innerhalb des Pods, der den Kommunikationsverkehr zwischen Diensten und Containern leitet und beobachtet.
Istio setzt auf Kubernetes auf und fügt Container hinzu, die für den Programmierer und Administrator im Wesentlichen unsichtbar sind. Diese sogenannten Sidecar-Container fungieren als „Person in der Mitte“, regeln den Verkehr und überwachen die Interaktionen zwischen den Komponenten. Die beiden wirken in Kombination auf die folgenden drei Arten.
Konfiguration: Die primäre Methode zum Festlegen der Konfiguration mit Kubernetes ist der Befehl kubectl, häufig kubectl -f <filename>, wobei es sich bei der Datei um eine YAML-Datei handelt. Istio-Nutzer können entweder neue und verschiedene Typen von YAML-Dateien mit kubectl ausführen oder den neuen, optionalen ioctl-Befehl verwenden.
Überwachung: Mit Istio können Sie den Status Ihrer Anwendungen überwachen, die mit Kubernetes ausgeführt werden. Die Istio-Instrumentierung kann den Zustand von Anwendungen verwalten und visualisieren und bietet damit mehr Einblick als die allgemeine Überwachung von Clustern und Knoten, die Kubernetes bietet.
Management: Da die Schnittstelle für Istio im Wesentlichen mit der von Kubernetes identisch ist, erfordert die Verwaltung nur wenig zusätzlichen Aufwand. Istio ermöglicht es dem Benutzer, Richtlinien zu erstellen, die sich auf den gesamten Kubernetes-Cluster auswirken und ihn verwalten, wodurch der Zeitaufwand für die Verwaltung jedes Clusters reduziert wird und gleichzeitig kein benutzerdefinierter Verwaltungscode erforderlich ist.
Istio verwendet eine stark erweiterte Version von Envoy, um die Überwachung, Verwaltung und Protokollierung durchzuführen. Jeder Pod muss nachverfolgt werden und Istio muss Informationen über alle Pods aggregieren und bereitstellen. Eine mögliche Alternative zur Verwendung von Istio wäre die direkte Bereitstellung von Envoy im Kubernetes-Cluster und das Schreiben von Verwaltungscode. Dabei handelt es sich im Wesentlichen um eine Neuerstellung von Istio, mit den damit verbundenen Kosten und Fehlern eines benutzerdefinierten Entwicklungsprojekts.