Definition „Istio“ Was ist Istio?
Es gibt verschiedene Lösungen, um Microservices in Kubernetes-Clustern zu verbinden. Istio ist dabei eine ganz besondere, da leicht anzupassende, Möglichkeit, Container zu verbinden, sichern und zu überwachen.

Bei Istio handelt es sich um ein Open-Source-Programm, das als Mesh-Plattform bzw. Service-Netzschicht für Kubernetes fungiert. Der Name leitet sich vom griechischen Wort für „Segel“ ab, was den engen Bezug zu Kubernetes (griechisch für „Steuermann“) verdeutlicht.
Kubernetes (K8s) arbeitet mit Knoten, die ihrerseits aus mehreren Containern mit Dateisystemen und anderen Komponenten bestehen. Mikroservice-Architekturen fassen dabei ein Dutzend Knoten zusammen und fügt Pods und Pod-Skalierer hinzu. Istio fügt an dieser Stelle weitere Behälter in die Pods ein, wodurch die Verwaltung, Sicherheit und Überwachung zentral verwaltet werden können.
Zwar bildet die Integration mit Kubernetes das aktuell am häufigsten genutzte Szenario ab; trotzdem kann Istio das Daten-Sharing von Microservices auch in Clouds, On-Premises oder auf virtuellen Maschinen kontrollieren. Und weil Istio Open Source ist, zeigen sich für User vor allem zwei Vorteile:
- Erweiterungen für Istio können problemlos selbst geschrieben werden, um die Plattform so maßgerecht auf den eigenen Anwendungsfall vorzubereiten.
- Istio ist auf jeder öffentlichen Cloud lauffähig, die von der Plattform unterstützt wird und kann auch auf privaten Clouds (bei Freigabe) genutzt werden.
Istio als Lösung für Unternehmen mit vielen Microservices
IT-Systeme zu skalieren, bringt für Unternehmen stets Herausforderungen mit sich. Die steigende Komplexität der Verwaltung gehört hier zweifelsohne dazu – Kubernetes-Cluster liefern hier einen wichtigen ersten Schritt, um Nachfrage und Management virtueller Maschinen zu entschlacken.
Doch Kubernetes alleine liefert noch nicht die Überwachungs- und Debugging-Tools, die viele Entwickler und Entwicklerinnen nutzen möchten bzw. müssen, und verwaltet weder Routing noch Verkehrsregeln. Da die Zahl der Kommunikationspfade und damit die Komplexität in einem System aber nicht linear sondern exponentiell steigt, ist ein Service-Mesh-Tool an diesem Punkt unverzichtbar.
Statt also jeden Container durch Code zu konfigurieren, können User von Istio (oder anderen Service-Mesh-Platforms wie Kuma oder Linkerd 2.x) einfach eine Konfiguration für den Mesh erstellen, welche dann die Kommunikation zwischen Diensten und Kubernetes-Containern leitet und überwacht. Diese Container sind prinzipiell unsichtbar und werden als sogenanntes Sidecar genutzt. Diese Sidecars haben die Aufgaben Konfiguration, Überwachung und Verwaltung
Warum Kubernetes-User Istio nutzen sollten
Die Vorteile eines Managements von Microservices finden sich vor allem in der einfachen Verwaltung stark skalierender Systeme. Je größer die Zahl der Dienste ist, desto schwieriger wird das händische Management. Doch Istio hat noch weitere Stärken:
Debugging – Mit einer steigenden Anzahl an Services, werden auch Abhängigkeitsketten immer komplexer. Durch das Aufrufen von Webservices wird dieser Vorgang noch umfangreicher, was in der täglichen Anwendung ein übersichtliches Debugging erfordert. Istio liefert Developern hierbei die Möglichkeit, durch die Erstellung von Funktionsaufrufen in Diagrammen Fehler besonders übersichtlich aufbereitet nachverfolgen zu können.
Dashboards – Nicht nur im Debugging bietet Istio visuell besonders leicht lesbare Möglichkeiten der Datenaufbereitung, auch der Datenverkehr lässt sich mithilfe von Istios Dashboards auf einen Blick überwachen. Die Daten können dabei global oder aber gezielt für Knoten, Dienste oder Pods aufbereitet werden.
Richtlinien – Pods können in K8s Daten an anderen Pods senden und dies voreingestellt ohne Einschränkungen. Dies ist nicht in jedem System wünschenswert, kann in komplexeren Systemen sogar schnell zum Problem werden. In Istio lassen sich Richtlinien definieren, anhand derer Dienste nur mit Diensten in Abhängigkeit kommunizieren können. Dies dient auch der Verhinderung von DoS-Attacken.
Routing – Istio erlaubt durch den Einsatz von Tagging in Konfigurationsdateien die Nutzung von Metadaten, um User*innen genau auf die Dienste weitergeleitet werden, die diese erreichen sollen. So können Anfragen etwa auf die Services einer Beta und die Services einer stabilen Version hin verteilt werden. Dadurch erlaubt Istio eine sehr einfache parallele Nutzung des gleichen Services mit unterschiedlichen Versionen.
Verschlüsselung – Um sicherzustellen, dass die Kommunikation zwischen den Pods nicht nur schnell und effizient abläuft, sondern auch gängigen Sicherheitsprotokollen entspricht, nutzt Istio AAA-Tools. AAA steht für Authentifizierung, Autorisierung und Prüfung (audit), diese Tools verschlüsseln den Datenverkehr zwischen den Pods und verhindern das Einlesen durch Unbefugte. Die Daten werden also chiffriert übermittelt und Serviceaufrufe können nicht vorgetäuscht werden.
Vereinfachung – Verwaltung und Sicherheit lassen sich dank Istio zusammengefasst managen. Administrator*innen müssen nicht länger Sicherheitsregeln für jeden Dienst neu implementieren, sondern können auf einer übergeordneten Ebene arbeiten und über ein zentrales Bedienfeld verwalten.
Istio als unabhängiges Verwaltungstool für Kubernetes
Open Source bedeutet für Plattformen und Software stets eine große Community an User, die eine Software erweitern und Dokumentationen bereitstellen. Dies ist auch bei Istio der Fall. Zudem ist die Software kompatibel mit einer Vielzahl an Clouds wie beispielsweise Lösungen von IBM, Amazon oder Google. Neben Kubernetes werden auch Mesos, Consul oder Nomad unterstützt.
Während für IT-Teams beim Einsatz von Istio vorrangig die Einfachheit im Vordergrund steht, spüren auch Endanwender und -anwenderinnen die Vorteile des Service-Mesh. Schließlich lassen sich durch Istio verwaltete Cluster besser vor Angriffen und Ausfällen geschützt werden und erlauben das problemlose Parallellaufen von gleichen Services unterschiedlicher Versionen.
(ID:48494946)