Share via


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:

  • Veilige service-naar-service-communicatie in een cluster met TLS-versleuteling (Transport Layer Security), sterke verificatie en autorisatie op basis van identiteit.
  • 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, omdat deze momenteel niet beschikbaar is in open source Istio. Probleem bijhouden van deze functievraag vindt u hier.
  • Aanpassing van mesh via de volgende aangepaste resources wordt voorlopig geblokkeerd - ProxyConfig, WorkloadEntry, WorkloadGroup, Telemetry, IstioOperator, WasmPlugin, EnvoyFilter.
  • De EnvoyFilterinvoegtoepassing ondersteunt alleen het filter van het type Lua voor nu (type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua). Hoewel dit EnvoyFilter is toegestaan, wordt elk probleem dat voortvloeit uit het Lua-script zelf niet ondersteund. Andere EnvoyFilter typen worden momenteel geblokkeerd.
  • Gateway-API voor istio-ingangsgateway of het beheren van mesh-verkeer (GAMMA) wordt momenteel nog niet ondersteund met de Istio-invoegtoepassing. Het is van plan om aanpassingen toe te staan, zoals de configuratie van vaste IP-adressen voor inkomend verkeer als onderdeel van de gateway-API-implementatie voor de invoegtoepassing in de toekomst.

Feedback en functie vraagt

Feedback en functie vraagt om de Istio-invoegtoepassing door problemen met het label 'service-mesh' te maken in de GitHub-opslagplaats van AKS.

Volgende stappen