Freigeben über


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. Seine leistungsstarke Steuerungsebene 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, Failover und Fehlereinschleusung (Fault Injection).
  • 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 eingehender und ausgehender Datenverkehr im Cluster.

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üft für die Kompatibilität mit dem Azure Monitor Managed Service für Prometheus und 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 Netz 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 Ambient-Modus ohne Sidecar 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. Die Problemverfolgung dieser Featureanfrage finden Sie hier.

  • Die Anpassung des Meshs 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

    Während diese EnvoyFilters zulässig sind, befinden sich alle daraus resultierenden Probleme (z. B. aus dem Lua-Skript oder aus der Komprimierungsbibliothek) 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 .

  • 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. Während das Add-On Anmerkungen und externalTrafficPolicy Anpassungen für die Istio-Eingangsgateways unterstützt, wird die Port- oder Protokollkonfiguration derzeit nicht unterstützt.

  • Das Add-On unterstützt die Anpassung einer Teilmenge der Felder in MeshConfig. Andere Anpassungen sind möglicherweise zulässig, aber entweder nicht unterstützt oder vollständig verboten, wie hier beschrieben.

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