Istio-baserat tillägg för tjänstnät (service mesh) för Azure Kubernetes Service

Istio hanterar de utmaningar som utvecklare och operatörer står inför med en distribuerad arkitektur eller mikrotjänstarkitektur. Det Istio-baserade service mesh-tillägget ger en officiellt stödd och testad integrering för Azure Kubernetes Service (AKS).

Vad är ett Service Mesh?

Moderna program är vanligtvis konstruerade som distribuerade samlingar av mikrotjänster, där varje samling mikrotjänster utför vissa diskreta affärsfunktioner. Ett tjänstnät är ett dedikerat infrastrukturlager som du kan lägga till i dina program. Det gör att du transparent kan lägga till funktioner som observerbarhet, trafikhantering och säkerhet, utan att lägga till dem i din egen kod. Termen service mesh beskriver både vilken typ av programvara du använder för att implementera det här mönstret och den säkerhets- eller nätverksdomän som skapas när du använder programvaran.

När distributionen av distribuerade tjänster, till exempel i ett Kubernetes-baserat system, växer i storlek och komplexitet kan det bli svårare att förstå och hantera. Du kan behöva implementera funktioner som identifiering, belastningsutjämning, återställning av fel, mått och övervakning. Ett tjänstnät kan också hantera mer komplexa driftskrav som A/B-testning, kanariedistributioner, hastighetsbegränsning, åtkomstkontroll, kryptering och autentisering från slutpunkt till slutpunkt.

Tjänst-till-tjänst-kommunikation är det som gör ett distribuerat program möjligt. Att dirigera den här kommunikationen, både inom och mellan programkluster, blir allt mer komplext när antalet tjänster växer. Istio hjälper till att minska den här komplexiteten samtidigt som belastningen på utvecklingsteamen minskar.

Vad är Istio?

Istio är ett tjänstnät med öppen källkod som lagrar transparent på befintliga distribuerade program. Istios kraftfulla funktioner ger ett enhetligt och effektivare sätt att skydda, ansluta och övervaka tjänster. Istio möjliggör belastningsutjämning, tjänst-till-tjänst-autentisering och övervakning – med få eller inga ändringar i tjänstkoden. Dess kraftfulla kontrollplan ger viktiga funktioner, inklusive:

  • Säker tjänst-till-tjänst-kommunikation i ett kluster med TLS-kryptering (Transport Layer Security), stark identitetsbaserad autentisering och auktorisering.
  • Automatisk belastningsutjämning för HTTP-, gRPC-, WebSocket- och TCP-trafik.
  • Detaljerad kontroll av trafikbeteende med omfattande routningsregler, återförsök, redundans och felinmatning.
  • Ett anslutningsbart principlager och konfigurations-API som stöder åtkomstkontroller, hastighetsbegränsningar och kvoter.
  • Automatiska mått, loggar och spårningar för all trafik i ett kluster, inklusive ingress och utgående kluster.

Hur skiljer sig tillägget från Istio med öppen källkod?

Det här service mesh-tillägget använder och bygger ovanpå Istio med öppen källkod. Tilläggssmaken ger följande extra fördelar:

  • Istio-versioner testas och verifieras vara kompatibla med versioner av Azure Kubernetes Service som stöds.
  • Microsoft hanterar skalning och konfiguration av Istio-kontrollplan
  • Microsoft justerar skalning av AKS-komponenter som coredns när Istio är aktiverat.
  • Microsoft tillhandahåller hanterad livscykel (uppgraderingar) för Istio-komponenter när de utlöses av användaren.
  • Verifierad extern och intern ingress-konfiguration.
  • Verifierad för att fungera med Azure Monitor-hanterad tjänst för Prometheus och Azure Managed Grafana.
  • Officiella Azure Support för tillägget.

Begränsningar

Istio-baserat tillägg för tjänstnät (service mesh) för AKS har följande begränsningar:

  • Tillägget fungerar inte på AKS-kluster som använder Open Service Mesh-tillägg för AKS.

  • Tillägget fungerar inte på AKS-kluster med självhanterade installationer av Istio.

  • Tillägget har inte stöd för att lägga till poddar som är associerade med virtuella noder som ska läggas till under nätet.

  • Tillägget har ännu inte stöd för utgående gatewayer för utgående trafikkontroll.

  • Tillägget stöder ännu inte sidovagnslöst omgivande läge. Microsoft bidrar för närvarande till Ambient workstream under Istio öppen källkod. Produktintegrering för omgivningsläge finns med i översikten och utvärderas kontinuerligt allt eftersom den omgivande arbetsströmmen utvecklas.

  • Tillägget har ännu inte stöd för distributioner med flera kluster.

  • Tillägget har ännu inte stöd för Windows Server-containrar. Windows Server-containrar stöds ännu inte i öppen källkod Istio just nu. Problem med att spåra den här funktionsfrågan finns här.

  • Anpassning av mesh via följande anpassade resurser är för närvarande blockerad – ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin.

  • Tillägget tillåter användning av följande EnvoyFilter filtertyper, med andra filtertyper blockerade:

    • Lua (type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua).
    • Kompressor (type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor)
    • Lokal hastighetsgräns (type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit)

    Kommentar

    Även om dessa EnvoyFilterär tillåtna ligger alla problem som uppstår från dem (till exempel från Lua scipt eller från komprimeringsbiblioteket) utanför supportomfånget för Istio-tillägget. Mer information om supportkategorierna för Istio-tilläggsfunktioner och konfigurationsalternativ finns i dokumentet om supportprinciper.

  • Gateway-API för Istio-ingressgateway eller hantering av nättrafik (GAMMA) stöds för närvarande inte med Istio-tillägg. Gateway-API:et för Ingress-trafikhantering i Istio är dock under aktiv utveckling för tillägget. Tillägget stöder anteckningsanpassning för Istio-ingressgatewayer för IP-adresser och tjänsttaggar, men port- eller protokollkonfiguration stöds för närvarande inte.

Feedback och funktions fråga

Feedback och funktionsberedskap för Istio-tillägget kan tillhandahållas genom att skapa problem med etiketten "service-mesh" på AKS GitHub-lagringsplatsen.

Nästa steg