Istio-basiertes Dienstnetz-Add-On für Azure Kubernetes Service

Istio bewältigt die Herausforderungen, vor denen Entwickler*innen und Operator*innen mit einer verteilten oder auf Microservices basierenden Architektur stehen. Das Istio-basierte Dienstnetz-Add-On bietet eine offiziell unterstützte und getestete Integration für Azure Kubernetes Service (AKS).

Was ist ein Dienstnetz?

Moderne Anwendungen werden in der Regel als verteilte Sammlungen von Microservices entworfen, und jede Sammlung führt eine separate Geschäftsfunktion aus. Ein Dienstnetz ist eine dedizierte Infrastrukturebene, die Sie Ihren Anwendungen hinzufügen können. Es ermöglicht Ihnen, Funktionen wie Einblick, Datenverkehrsverwaltung und Sicherheit transparent hinzuzufügen, ohne sie in Ihren eigenen Code einzufügen. Der Begriff Dienstnetz beschreibt sowohl die Art der Software, die Sie zum Implementieren dieses Musters verwenden, als auch die Sicherheits- oder Netzwerkdomäne, die bei der Verwendung dieser Software erstellt wird.

Mit zunehmender Größe und Komplexität einer Bereitstellung verteilter Dienste (etwa in einem Kubernetes-basierten System) wird es ggf. schwieriger, sie zu verstehen und zu verwalten. Möglicherweise müssen Funktionen wie Ermittlung, Lastenausgleich, Fehlerwiederherstellung, Metriken und Überwachung implementiert werden. Ein Dienstnetz eignet sich auch für komplexere betriebliche Anforderungen wie A/B-Tests, Canary-Bereitstellungen, Ratenbegrenzung, Zugriffssteuerung, Verschlüsselung und End-to-End-Authentifizierung.

Eine verteilte Anwendung wird durch die Kommunikation zwischen Diensten möglich. Das Routing dieser Kommunikation innerhalb und zwischen Anwendungsclustern wird mit zunehmender Anzahl von Diensten immer komplexer. Istio trägt dazu bei, diese Komplexität zu reduzieren und gleichzeitig Entwicklungsteams zu entlasten.

Was ist Istio?

Istio ist ein Open-Source-Dienstnetz, das transparent über vorhandene verteilte Anwendungen platziert wird. Die leistungsstarken Features von Istio bieten eine einheitliche und effizientere Methode zum Schützen, Verbinden und Überwachen von Diensten. Istio ermöglicht Lastenausgleich, Dienst-zu-Dienst-Authentifizierung und Überwachung mit wenigen oder sogar ganz ohne Änderungen am Dienstcode. Die leistungsstarke Steuerungsebene von Istio bietet wichtige Features:

  • Sichere Kommunikation zwischen Diensten in einem Cluster mit TLS-Verschlüsselung, sicherer identitätsbasierter Authentifizierung und Autorisierung.
  • Automatischer Lastenausgleich für HTTP-, gRPC-, WebSocket- und TCP-Datenverkehr.
  • Differenzierte Steuerung des Datenverkehrsverhaltens mit umfangreichen Routingregeln, Wiederholungen, Failovern und Fehlereinschleusung.
  • Eine austauschbare Richtlinienebene und Konfigurations-API, die Zugriffssteuerungen, Ratenbegrenzungen und Kontingente unterstützt.
  • Automatische Metriken, Protokolle und Ablaufverfolgungen für den gesamten Datenverkehr innerhalb eines Clusters, einschließlich Clusterein- und -ausgang.

Inwiefern unterscheidet sich das Add-On von der Open-Source-Version von Istio?

Dieses Dienstnetz-Add-On verwendet die Open-Source-Version von Istio und baut darauf auf. Die Add-On-Variante bietet zusätzlich folgende Vorteile:

  • Istio-Versionen werden getestet und auf Kompatibilität mit unterstützten Versionen von Azure Kubernetes Service geprüft.
  • Microsoft übernimmt die Skalierung und Konfiguration der Istio-Steuerungsebene.
  • Microsoft passt die Skalierung von AKS-Komponenten wie coredns an, wenn Istio aktiviert ist.
  • Microsoft bietet einen verwalteten Lebenszyklus (Upgrades) für Istio-Komponenten, wenn sie von Benutzer*innen ausgelöst werden.
  • Geprüftes Eingangssetup (sowohl extern als auch intern)
  • Geprüfte Zusammenarbeit mit dem verwalteten Azure Monitor-Dienst für Prometheus sowie mit Azure Managed Grafana
  • Offizieller Azure-Support für das Add-On

Einschränkungen

Für das Istio-basierte Dienstnetz-Add-On für AKS gelten folgende Einschränkungen:

  • Das Add-On funktioniert nicht in AKS-Clustern, die das Open Service Mesh (OSM)-Add-On in Azure Kubernetes Service (AKS) verwenden.
  • Das Add-On funktioniert nicht in AKS-Clustern, in denen Istio bereits außerhalb der Add-On-Installation installiert ist.
  • Das Add-On unterstützt nicht das Hinzufügen von Pods, die virtuellen Knoten zugeordnet sind, die unter dem Gittermodell hinzugefügt werden sollen.
  • Istio unterstützt keine Windows Server-Container.
  • Die Anpassung des Netzes basierend auf folgenden benutzerdefinierten Ressourcen ist vorerst blockiert: EnvoyFilter, ProxyConfig, WorkloadEntry, WorkloadGroup, Telemetry, IstioOperator, WasmPlugin.
  • Die Gateway-API für das Istio-Eingangsgateway oder die Verwaltung des Clouddatenverkehrs (GAMMA) wird derzeit mit dem Istio-Add-On noch nicht unterstützt.

Nächste Schritte