Kommentar
Å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.
Om du har följt de tidigare självstudierna har du ett fungerande Kubernetes-kluster och Azure Store Front-app.
I den här självstudien skalar du ut poddarna i appen, provar automatisk skalning av poddar och skalar antalet virtuella Azure-noder för att ändra klustrets kapacitet för att hantera arbetsbelastningar. Du lär dig att:
- Skala Kubernetesnoderna.
- Skala Kubernetes-poddar manuellt som kör ditt program.
- Konfigurera poddar för automatisk skalning som kör appens frontend.
Innan du börjar
I tidigare självstudier paketerade du ett program i en containeravbildning, laddade upp avbildningen till Azure Container Registry, skapade ett AKS-kluster, distribuerade ett program och använde Azure Service Bus för att distribuera om ett uppdaterat program. Om du inte har slutfört de här stegen och vill följa med börjar du med Självstudie 1 – Förbereda programmet för AKS.
Den här självstudien ändrar antalet poddar och noder och kan öka beräkningskostnaderna. Använd en identitet med behörighet att skala AKS-arbetsbelastningar och nodpooler, till exempel Deltagare eller Ägare för resursgruppen.
Den här handledningen kräver Azure CLI version 2.34.1 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI.
Skala poddar manuellt
AKS Desktop
Redigera skalningskonfigurationen för ordertjänsten genom att välja Skalning>Välj distribution: ordertjänst>Redigera konfigurationsnummer>för repliker: 5.
Kontrollera att distributionsuppdateringen slutförs innan du fortsätter.
Visa poddarna i klustret med hjälp av
kubectl getkommandot .kubectl get podsFöljande exempelutdata visar poddarna som kör Azure Store Front-appen:
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31mÄndra antalet poddar manuellt i driftsättningen av butiksfronten med hjälp av
kubectl scalekommandot.kubectl scale --replicas=5 deployment.apps/store-frontKontrollera att ytterligare poddar har skapats med kommandot
kubectl get pods.kubectl get pods --selector app=store-frontFöljande exempelutdata visar de ytterligare poddar som kör Azure Store Front-appen:
NAME READY STATUS RESTARTS AGE store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Autoskalning av poddar
AKS Desktop
I Project väljer du knappen >Kubernetes YAML.
Kopiera och klistra in yaml-autoskalningsmanifestet och resursbegränsningarna.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50Välj Nästa>distribuera>stäng.
Välj Skalning>Välj distribution: store-front. Du kan se att skalningsläget nu är inställt på HPA, Replikgräns och CPU-användning/mål som angetts av konfigurationen.
Kontrollera att HPA-läget är aktiverat och att replikgränsen matchar manifestvärdena.
Kommandorad
Om du vill använda den horisontella autoskalaren för poddar måste alla containrar ha definierade CPU-förfrågningar och gränser, och poddar måste ha angivna förfrågningar. I distributionen aks-store-quickstart begär klientdelscontainern 1 milliCPU med en gräns på 1000 milliCPU.
Dessa resursbegäranden och begränsningar definieras för varje container, enligt följande komprimerade exempel YAML:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Autoskalning av poddar med hjälp av en manifestfil
Skapa en manifestfil för att definiera autoskalningsbeteendet och resursbegränsningarna, enligt följande komprimerade exempelmanifestfil
aks-store-quickstart-hpa.yaml:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50Använd autoskalningsmanifestfilen med kommandot
kubectl apply.kubectl apply -f aks-store-quickstart-hpa.yamlKontrollera statusen för autoskalningen med hjälp av
kubectl get hpakommandot .kubectl get hpaEfter några minuter, när Azure Store Front-appen har minimal belastning, minskar antalet pod-repliker till tre. Du kan använda kommandot
kubectl get podsigen för att se de onödiga poddar som tas bort.Fortsätt när kolumnerna
TARGETSochREPLICASvisar förväntat autoskalningsbeteende förstore-front-hpa.
Note
Du kan aktivera AKS-tillägget Kubernetes-baserad Event-Driven Autoscaler (KEDA) till klustret för att driva skalning baserat på antalet händelser som behöver bearbetas. Mer information finns i Aktivera förenklad automatisk skalning av program med tillägget Kubernetes Event-Driven Autoscaling (KEDA) (förhandsversion).
Skala AKS-noder manuellt
Note
Om du har skapat ett AKS-automatiskt kluster gäller inte de här stegen eftersom klustret autoskalar noder.
Om du har skapat ditt AKS Standard-kluster med hjälp av kommandona i de tidigare självstudierna, har klustret tre noder. Om du vill öka eller minska den här mängden kan du justera antalet noder manuellt.
I följande exempel ökar antalet noder till fem i Kubernetes-klustret med namnet myAKSCluster. Det tar några minuter att slutföra kommandot.
Skala dina klusternoder med kommandot
az aks scale.När klustret skalas korrekt liknar dina utdata följande exempelutdata:
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o tableaz aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5När klustret har skalats kommer dina utdata att likna följande exempelutdata:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 5, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
Du kan också autoskala noderna i klustret. Mer information finns i Använda autoskalning av kluster med nodpooler.
Nästa steg
I den här självstudien använde du olika skalningsfunktioner i ditt Kubernetes-kluster. Du har lärt dig att:
- Skala Kubernetes-poddar manuellt som kör ditt program.
- Konfigurera poddar för automatisk skalning som kör appens frontend.
- Skala Kubernetes-noderna manuellt.
Om du är klar väljer du ikonen Ta bort och i bekräftelsemeddelandet väljer du Ta också bort namnområdet.
I nästa handledning kommer du att lära dig hur du uppgraderar Kubernetes i ditt AKS-kluster.