Självstudie – Skala program i Azure Kubernetes Service (AKS)
Om du har följt de tidigare självstudierna har du ett fungerande Kubernetes-kluster och En Front-app i Azure Store.
I den här självstudien, del sex av sju, skalar du ut poddarna i appen, provar autoskalning 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 Kubernetes-noderna.
- Skala Kubernetes-poddar manuellt som kör ditt program.
- Konfigurera poddar för automatisk skalning som kör appens klientdel.
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 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 kan du läsa Installera Azure CLI.
Visa poddarna i klustret med hjälp av
kubectl get
kommandot .kubectl get pods
Fö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 manuellt antalet poddar i distributionen på butiksfronten
kubectl scale
med hjälp av kommandot .kubectl scale --replicas=5 deployment.apps/store-front
Kontrollera att ytterligare poddar har skapats med kommandot
kubectl get pods
.kubectl get pods
Följande exempelutdata visar de ytterligare poddar som kör Azure Store Front-appen:
READY STATUS RESTARTS AGE store-front-2606967446-2q2qzc 1/1 Running 0 15m 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
Om du vill använda den vågräta autoskalningsappen för poddar måste alla containrar ha definierade CPU-begäranden och gränser, och poddar måste ha angivna begäranden. I distributionen aks-store-quickstart
begär klientdelscontainern 1 miljon processorer med en gräns på 1 000 m CPU.
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
...
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: 50
Använd autoskalningsmanifestfilen med kommandot
kubectl apply
.kubectl apply -f aks-store-quickstart-hpa.yaml
Kontrollera statusen för autoskalningen med hjälp av
kubectl get hpa
kommandot .kubectl get hpa
Efter några minuter, med minimal belastning på Azure Store Front-appen, minskar antalet poddrepliker till tre. Du kan använda
kubectl get pods
igen om du vill visa de onödiga poddarna som tas bort.
Anteckning
Du kan aktivera AKS-tillägget Kubernetes-baserad händelsedriven autoskalning (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).
Om du skapade kubernetes-klustret med hjälp av kommandona i föregående självstudier har klustret två noder. Om du vill öka eller minska den här mängden kan du justera antalet noder manuellt.
I följande exempel ökas antalet agentnoder till tre i Kubernetes-klustret med namn myAKSCluster. Det tar några minuter att slutföra kommandot.
Skala dina klusternoder med kommandot
az aks scale
.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
När klustret har skalats kommer dina utdata att likna följande exempelutdata:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 3, "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.
I den här självstudien har du använt olika skalningsfunktioner i Kubernetes-klustret. 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 klientdel.
- Skala Kubernetes-noderna manuellt.
I nästa självstudie får du lära dig hur du uppgraderar Kubernetes i ditt AKS-kluster.
Feedback om Azure Kubernetes Service
Azure Kubernetes Service är ett öppen källkod projekt. Välj en länk för att ge feedback: