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 (Transport Layer Security), 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 auf AKS-Clustern mit selbstverwalteten Installationen von Istio.
Das Add-On unterstützt nicht das Hinzufügen von Pods, die virtuellen Knoten zugeordnet sind, die unter dem Gittermodell hinzugefügt werden sollen.
Das Add-On unterstützt noch keine ausgehenden Gateways für die Steuerung des ausgehenden Datenverkehrs.
Das Add-On unterstützt den Sidecar-less Ambient-Modus noch nicht. Microsoft trägt zurzeit zu Ambient Workstream unter Istio Open Source bei. Die Produktintegration für den Ambient-Modus befindet sich in der Roadmap und wird kontinuierlich ausgewertet, wenn sich der Ambient-Workstream weiterentwickelt.
Das Add-On unterstützt noch keine Multiclusterbereitstellungen.
Das Add-On unterstützt noch keine Windows Server-Container. Windows Server-Container werden derzeit in der Open-Source-Version von Istio noch nicht unterstützt. Problemverfolgung dieser Feature-Anfrage finden Sie hier.
Die Anpassung des Netzes durch die folgenden benutzerdefinierten Ressourcen ist derzeit blockiert:
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
.Das Add-On erlaubt die folgenden
EnvoyFilter
-Filtertypen, während andere Filtertypen blockiert werden:- Lua (
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
). - Compressor (
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - Lokaler Ratengrenzwert (
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
Hinweis
Diese
EnvoyFilter
sind zwar zulässig, alle daraus resultierenden Probleme (z. B. vom Lua-Skript oder der Komprimierungsbibliothek) liegen jedoch außerhalb des Supportumfangs des Istio-Add-Ons. Weitere Informationen zu den Supportkategorien für Istio-Add-On-Features und Konfigurationsoptionen finden Sie im Supportrichtliniendokument .- Lua (
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. Die Gateway-API für die Verwaltung von eingehendem Istio-Datenverkehr befindet sich derzeit jedoch in der aktiven Entwicklung für das Add-On. Das Add-On unterstützt zwar die Anmerkungsanpassung für die Istio-Eingangsgateways für IP-Adressen und Diensttags, aber die Port- oder Protokollkonfiguration wird derzeit nicht unterstützt.
Feedback und Featureanfragen
Feedback und Featureanfragen nach dem Istio-Add-On können durch Erstellen von Problemen mit der Bezeichnung „service-mesh“ im AKS-GitHub-Repository übermittelt werden.
Nächste Schritte
- Deploy Istio-based service mesh add-on for Azure Kubernetes Service (preview) (Bereitstellen des Istio-basierten Dienstnetz-Add-Ons für Azure Kubernetes Service (Vorschau))
- Problembehandlung beim Istio-basierten service mesh-Add-On
Azure Kubernetes Service