Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du installerar det Istio-baserade service mesh-tillägget för AKS-kluster (Azure Kubernetes Service).
Mer information om Istio och service mesh-tillägget finns i Istio-baserat service mesh-tillägg för Azure Kubernetes Service.
Tip
Du kan använda Microsoft Copilot i Azure för att distribuera Istio till dina AKS-kluster i Azure-portalen. Mer information finns i Arbeta med AKS-kluster effektivt med Microsoft Copilot i Azure.
Innan du börjar
Tillägget kräver Azure CLI version 2.57.0 eller senare installerat. Du kan köra
az --versionför att verifiera versionen. Information om hur du installerar eller uppgraderar finns i Installera Azure CLI.Om du vill hitta information om vilka Istio-tilläggsrevisioner som är tillgängliga i en region och deras kompatibilitet med AKS-standard- och LTS-klusterversioner använder du kommandot
az aks mesh get-revisions:az aks mesh get-revisions --location <location> -o tableMer information om Istio-tilläggets kompatibilitet med AKS finns i kompatibilitetssupportprincipen.
I vissa fall kanske Istio CRD:er från tidigare installationer inte rensas automatiskt vid avinstallation. Se till att befintliga Istio CRD:ar tas bort:
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')Vi rekommenderar att du även rensar andra resurser från självhanterade installationer av Istio, till exempel ClusterRoles, MutatingWebhookConfigurations och ValidatingWebhookConfigurations.
Observera att om du väljer att använda cli-kommandon
istioctlmåste du inkludera en flagga som pekar på tilläggsinstallationen av Istio:--istioNamespace aks-istio-system
Ange miljövariabler
export CLUSTER=<cluster-name>
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>
Installera Istio-tillägget
Det här avsnittet innehåller steg för att installera Istio-tillägget när klustret skapas eller aktiveras för ett befintligt kluster med hjälp av Azure CLI. Om du vill installera tillägget med Bicep kan du läsa guiden för att installera ett AKS-kluster med tillägget Istio Service Mesh med hjälp av Bicep. Mer information om Bicep-resursdefinitionen för ett AKS-kluster finns i referensen för Bicep managedCluster.
Note
Om du behöver gatewaypoddarna istiod och ingress-/utträde gatewaypoddar schemalagda till vissa noder kan du använda AKS-systemnoder eller nodetiketten azureservicemesh/istio.replica.preferred . Poddarna har nodtillhörighet med en viktad inställning 100 för AKS-systemnoder (märkt kubernetes.azure.com/mode: system) och en viktad inställning 50 för noder märkta azureservicemesh/istio.replica.preferred: true.
Val av revision
Om du aktiverar tillägget utan att ange en revision installeras en standardrevision som stöds åt dig.
Utför följande steg för att ange en revision.
-
az aks mesh get-revisionsAnvänd kommandot för att kontrollera vilka revisioner som är tillgängliga för olika AKS-klusterversioner i en region. - Baserat på tillgängliga revisioner kan du inkludera
--revision asm-X-Yflaggan (t.ex.--revision asm-1-24) i det aktiverade kommando som du använder för mesh-installation.
Installera mesh när klustret skapas
Om du vill installera Istio-tillägget när du skapar klustret använder du parametern --enable-azure-service-mesh eller--enable-asm .
az group create --name ${RESOURCE_GROUP} --location ${LOCATION}
az aks create \
--resource-group ${RESOURCE_GROUP} \
--name ${CLUSTER} \
--enable-asm \
--generate-ssh-keys
Installera mesh för befintligt kluster
I följande exempel aktiveras Istio-tillägg för ett befintligt AKS-kluster:
Important
Du kan inte aktivera Istio-tillägget i ett befintligt kluster om ett OSM-tillägg redan finns i klustret. Avinstallera OSM-tillägget innan du installerar Istio-tillägget. Mer information finns i avinstallera OSM-tillägget från ditt AKS-kluster. Istio-tillägg kan bara aktiveras i AKS-kluster av version >= 1.23.
az aks mesh enable --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
Kontrollera att installationen har slutförts
Kontrollera att Istio-tillägget är installerat i klustret genom att köra följande kommando:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.mode'
Bekräfta att utdata visar Istio.
Använd az aks get-credentials för att hämta autentiseringsuppgifterna för ditt AKS-kluster:
az aks get-credentials --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
Använd kubectl för att verifiera att istiod (Istio-kontrollplanet) poddar körs framgångsrikt.
kubectl get pods -n aks-istio-system
Bekräfta att podden har statusen istiodRunning. Till exempel:
NAME READY STATUS RESTARTS AGE
istiod-asm-1-24-74f7f7c46c-xfdtl 1/1 Running 0 2m
istiod-asm-1-24-74f7f7c46c-4nt2v 1/1 Running 0 2m
Aktivera sidovagnsinmatning
För att automatiskt installera sidecar till alla nya pods måste du annotera dina namnområden med den revisionsetikett som motsvarar den kontrollplansrevision som för närvarande är installerad.
Om du är osäker på vilken revision som är installerad använder du:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.istio.revisions'
Använd revisionsetiketten:
kubectl label namespace default istio.io/rev=asm-X-Y
Important
Explicit versionering som matchar kontrollplanets revision (t.ex. istio.io/rev=asm-1-24) krävs.
Standardetiketten istio-injection=enabled kommer inte att fungera och orsakar att sidecar-injektionen hoppar över namespace för tillägget.
För manuell inmatning av sidovagn med hjälp av istioctl kube-injectmåste du ange extra parametrar för istioNamespace (-i) och revision (-r). Till exempel:
kubectl apply -f <(istioctl kube-inject -f sample.yaml -i aks-istio-system -r asm-X-Y) -n foo
Initiera sidecar-injektion
Du kan antingen distribuera exempelprogrammet som tillhandahålls för testning eller utlösa sidovagnsinjektion för befintliga arbetslaster.
Befintliga applikationer
Om du har befintliga applikationer som ska läggas till i nätverket, se till att deras namnrymder är märkta enligt föregående steg och starta sedan om deras utrullningar för att aktivera sidobilagorinsprutning.
kubectl rollout restart -n <namespace> <deployment name>
Kontrollera att sidovagnsinjektionen lyckades genom att säkerställa att alla containrar är redo, och leta efter containern istio-proxy i kubectl describe-utskriften, till exempel:
kubectl describe pod -n namespace <pod name>
Containern istio-proxy är Envoy-sidovagnen. Ditt program är nu en del av dataplanet.
Distribuera exempelprogram
Använd kubectl apply för att distribuera exempelprogrammet i klustret:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
Note
Kluster som använder en HTTP-proxy för utgående internetåtkomst bör konfigurera en tjänsteinträde. Installationsinstruktioner finns i HTTP-proxystöd i Azure Kubernetes Service
Bekräfta att flera distributioner och tjänster har skapats på din kluster. Till exempel:
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created
Använd kubectl get services för att kontrollera att tjänsterna har skapats:
kubectl get services
Bekräfta att följande tjänster har distribuerats:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
details ClusterIP 10.0.180.193 <none> 9080/TCP 87s
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 15m
productpage ClusterIP 10.0.112.238 <none> 9080/TCP 86s
ratings ClusterIP 10.0.15.201 <none> 9080/TCP 86s
reviews ClusterIP 10.0.73.95 <none> 9080/TCP 86s
kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-558b8b4b76-2llld 2/2 Running 0 2m41s
productpage-v1-6987489c74-lpkgl 2/2 Running 0 2m40s
ratings-v1-7dc98c7588-vzftc 2/2 Running 0 2m41s
reviews-v1-7f99cc4496-gdxfn 2/2 Running 0 2m41s
reviews-v2-7d79d5bd5d-8zzqd 2/2 Running 0 2m41s
reviews-v3-7dbcdcbc56-m8dph 2/2 Running 0 2m41s
Bekräfta att alla poddar har statusen Running med två containrar i READY kolumnen. Den andra containern som läggs till istio-proxy till varje pod är Envoy sidecar som injektats av Istio och den andra är programcontainern.
Om du vill testa det här exempelprogrammet mot ingress kan du ta en titt på nästa steg.
Nästa steg
Azure Kubernetes Service