Op Istio gebaseerde service mesh-invoegtoepassing voor Azure Kubernetes Service
Istio heeft betrekking op de uitdagingen waarmee ontwikkelaars en operators te maken krijgen met een gedistribueerde of microservicesarchitectuur. De invoegtoepassing service mesh op basis van Istio biedt een officieel ondersteunde en geteste integratie voor Azure Kubernetes Service (AKS).
Wat is een Service Mesh?
Moderne toepassingen worden doorgaans ontworpen als gedistribueerde verzamelingen microservices, waarbij elke verzameling microservices een discrete bedrijfsfunctie uitvoert. Een service-mesh is een toegewezen infrastructuurlaag die u aan uw toepassingen kunt toevoegen. Hiermee kunt u transparant mogelijkheden toevoegen, zoals waarneembaarheid, verkeersbeheer en beveiliging, zonder deze toe te voegen aan uw eigen code. De term service mesh beschrijft zowel het type software dat u gebruikt om dit patroon te implementeren, als het beveiligings- of netwerkdomein dat wordt gemaakt wanneer u die software gebruikt.
Naarmate de implementatie van gedistribueerde services, zoals in een Kubernetes-systeem, groter en complexer wordt, kan het moeilijker worden om te begrijpen en te beheren. Mogelijk moet u mogelijkheden implementeren, zoals detectie, taakverdeling, herstel van fouten, metrische gegevens en bewaking. Een service-mesh kan ook complexere operationele vereisten aanpakken, zoals A/B-tests, canary-implementaties, snelheidsbeperking, toegangsbeheer, versleuteling en end-to-end-verificatie.
Service-naar-service-communicatie is wat een gedistribueerde toepassing mogelijk maakt. Het routeren van deze communicatie, zowel binnen als tussen toepassingsclusters, wordt steeds complexer naarmate het aantal services toeneemt. Istio helpt deze complexiteit te verminderen terwijl de belasting van ontwikkelteams wordt versoepeld.
Wat is Istio?
Istio is een opensource-service-mesh die transparant wordt gelaagd op bestaande gedistribueerde toepassingen. De krachtige functies van Istio bieden een uniforme en efficiëntere manier om services te beveiligen, te verbinden en te bewaken. Istio maakt taakverdeling, service-naar-service-verificatie en bewaking mogelijk, met weinig of geen wijzigingen in de servicecode. Het krachtige besturingsvlak biedt essentiële functies, waaronder:
- Beveiligde service-naar-service-communicatie in een cluster met TLS-versleuteling (Transport Layer Security), sterke verificatie op basis van identiteit en autorisatie.
- Automatische taakverdeling voor HTTP-, gRPC-, WebSocket- en TCP-verkeer.
- Fijnmazige controle over verkeersgedrag met uitgebreide routeringsregels, nieuwe pogingen, failovers en foutinjectie.
- Een pluggable beleidslaag en configuratie-API die toegangsbeheer, frequentielimieten en quota ondersteunt.
- Automatische metrische gegevens, logboeken en traceringen voor al het verkeer binnen een cluster, inclusief inkomend en uitgaand cluster.
Hoe verschilt de invoegtoepassing van opensource Istio?
Deze service mesh-invoegtoepassing maakt gebruik van en bouwt voort op opensource Istio. De uitbreidingssmaak biedt de volgende extra voordelen:
- Istio-versies worden getest en geverifieerd om compatibel te zijn met ondersteunde versies van Azure Kubernetes Service.
- Microsoft verwerkt het schalen en configureren van het Istio-besturingsvlak
- Microsoft past het schalen van AKS-onderdelen aan, zoals
coredns
wanneer Istio is ingeschakeld. - Microsoft biedt beheerde levenscyclus (upgrades) voor Istio-onderdelen wanneer deze worden geactiveerd door de gebruiker.
- Gecontroleerde instellingen voor extern en intern inkomend verkeer.
- Gecontroleerd om te werken met de beheerde Azure Monitor-service voor Prometheus en Azure Managed Grafana.
- Officiële ondersteuning voor Azure verstrekt voor de invoegtoepassing.
Beperkingen
De op Istio gebaseerde service mesh-invoegtoepassing voor AKS heeft de volgende beperkingen:
De invoegtoepassing werkt niet op AKS-clusters die gebruikmaken van de Open Service Mesh-invoegtoepassing voor AKS.
De invoegtoepassing werkt niet op AKS-clusters met zelfbeheerde installaties van Istio.
De invoegtoepassing biedt geen ondersteuning voor het toevoegen van pods die zijn gekoppeld aan virtuele knooppunten die onder de mesh moeten worden toegevoegd.
De invoegtoepassing biedt nog geen ondersteuning voor uitgaande gateways voor uitgaand verkeer.
De invoegtoepassing biedt nog geen ondersteuning voor de sidecar-less omgevingsmodus. Microsoft draagt momenteel bij aan Ambient workstream onder Istio open source. Productintegratie voor omgevingsmodus staat op de roadmap en wordt continu geëvalueerd naarmate de omgevingswerkstroom zich ontwikkelt.
De invoegtoepassing biedt nog geen ondersteuning voor implementaties met meerdere clusters.
De invoegtoepassing biedt nog geen ondersteuning voor Windows Server-containers. Windows Server-containers worden momenteel nog niet ondersteund in open source Istio. Probleem bijhouden van deze functievraag vindt u hier.
Aanpassing van mesh via de volgende aangepaste resources wordt momenteel geblokkeerd -
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
.Met de invoegtoepassing kunnen de volgende
EnvoyFilter
filtertypen worden gebruikt, waarbij andere filtertypen zijn geblokkeerd:- Lua (
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
). - Compressor (
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - Lokale frequentielimiet (
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
Notitie
Hoewel deze
EnvoyFilter
s zijn toegestaan, vallen alle problemen die daaruit voortvloeien (bijvoorbeeld uit de Lua-scipt of uit de compressiebibliotheek) buiten het ondersteuningsbereik van de Istio-invoegtoepassing. Zie het ondersteuningsbeleidsdocument voor meer informatie over de ondersteuningscategorieën voor istio-invoegtoepassingsfuncties en configuratieopties.- Lua (
Gateway-API voor istio-ingangsgateway of het beheren van mesh-verkeer (GAMMA) wordt momenteel nog niet ondersteund met de invoegtoepassing Istio. Hoewel de invoegtoepassing ondersteuning biedt voor het aanpassen van aantekeningen voor de istio-ingangsgateways voor IP-adressen en servicetags , wordt de poort- of protocolconfiguratie momenteel niet ondersteund.
Feedback en functievragen
Feedback en functievragen voor de Istio-invoegtoepassing kunnen worden verstrekt door problemen met het label 'service-mesh' te maken in de GitHub-opslagplaats van AKS.
Volgende stappen
Azure Kubernetes Service