Zelfstudie: Toepassingen schalen in Azure Kubernetes Service (AKS)
Als u de vorige zelfstudies hebt gevolgd, hebt u een werkend Kubernetes-cluster en een Azure Store Front-app.
In deze zelfstudie, deel zes van zeven, schaalt u de pods in de app uit, probeert u pods automatisch schalen en schaalt u het aantal Azure VM-knooppunten om de capaciteit van het cluster voor het hosten van workloads te wijzigen. U leert het volgende:
- Schaal de Kubernetes-knooppunten.
- Schaal kubernetes-pods die uw toepassing uitvoeren handmatig.
- Configureer automatische schaalaanpassing van pods waarop de front-end van de app wordt uitgevoerd.
In eerdere zelfstudies hebt u een toepassing verpakt in een containerinstallatiekopie, de installatiekopie geüpload naar Azure Container Registry, een AKS-cluster gemaakt, een toepassing geïmplementeerd en Azure Service Bus gebruikt om een bijgewerkte toepassing opnieuw te implementeren. Als u deze stappen nog niet hebt voltooid en u deze wilt volgen, begint u met zelfstudie 1: De toepassing voorbereiden voor AKS.
Voor deze zelfstudie is Azure CLI versie 2.34.1 of hoger vereist. Voer az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
Bekijk de pods in uw cluster met behulp van de
kubectl get
opdracht.kubectl get pods
In de volgende voorbeelduitvoer ziet u de pods waarop de Azure Store Front-app wordt uitgevoerd:
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
Wijzig handmatig het aantal pods in de store-front-implementatie met behulp van de
kubectl scale
opdracht.kubectl scale --replicas=5 deployment.apps/store-front
Controleer of de extra pods zijn gemaakt met behulp van de
kubectl get pods
opdracht.kubectl get pods
In de volgende voorbeelduitvoer ziet u de extra pods waarop de Azure Store Front-app wordt uitgevoerd:
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
Als u de horizontale automatische schaalaanpassing van pods wilt gebruiken, moeten alle containers CPU-aanvragen en -limieten hebben gedefinieerd en moeten pods opgegeven aanvragen hebben. In de aks-store-quickstart
implementatie vraagt de front-endcontainer 1m CPU aan met een limiet van 1000m CPU.
Deze resourceaanvragen en -limieten worden gedefinieerd voor elke container, zoals wordt weergegeven in het volgende verkorte voorbeeld van 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
...
Maak een manifestbestand om het gedrag van automatische schaalaanpassing en resourcelimieten te definiëren, zoals wordt weergegeven in het volgende verkorte voorbeeldmanifestbestand
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
Pas het manifestbestand voor automatisch schalen toe met behulp van de
kubectl apply
opdracht.kubectl apply -f aks-store-quickstart-hpa.yaml
Controleer de status van de automatische schaalaanpassing met behulp van de
kubectl get hpa
opdracht.kubectl get hpa
Na een paar minuten, met minimale belasting van de Azure Store Front-app, neemt het aantal podreplica's af tot drie. U kunt
kubectl get pods
opnieuw gebruiken om te zien dat de overbodige pods worden verwijderd.
Notitie
U kunt de AKS-invoegtoepassing op basis van Kubernetes op basis van gebeurtenisgestuurde automatische schaalaanpassing (KEDA) inschakelen voor uw cluster om schaalaanpassing te stimuleren op basis van het aantal gebeurtenissen dat moet worden verwerkt. Zie Vereenvoudigde schaalaanpassing van toepassingen inschakelen met de invoegtoepassing Kubernetes Event-Driven Autoscaling (KEDA) (Preview) voor meer informatie.
Als u uw Kubernetes-cluster hebt gemaakt met behulp van de opdrachten in de vorige zelfstudies, heeft uw cluster twee knooppunten. Als u dit aantal wilt verhogen of verlagen, kunt u het aantal knooppunten handmatig aanpassen.
In het volgende voorbeeld wordt het aantal knooppunten in het Kubernetes-cluster myAKSCluster verhoogd tot drie. Het uitvoeren van deze opdracht duurt enkele minuten.
Schaal uw clusterknooppunten met behulp van de
az aks scale
opdracht.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Zodra het cluster is geschaald, is uw uitvoer vergelijkbaar met de volgende voorbeelduitvoer:
"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 ... } ... ]
U kunt de knooppunten in uw cluster ook automatisch schalen. Zie De automatische schaalaanpassing van clusters gebruiken met knooppuntgroepen voor meer informatie.
In deze zelfstudie hebt u verschillende schaalfuncties in uw Kubernetes-cluster gebruikt. U hebt geleerd hoe u:
- Schaal kubernetes-pods die uw toepassing uitvoeren handmatig.
- Configureer automatische schaalaanpassing van pods waarop de front-end van de app wordt uitgevoerd.
- Schaal de Kubernetes-knooppunten handmatig.
In de volgende zelfstudie leert u hoe u Kubernetes bijwerken in uw AKS-cluster.
Azure Kubernetes Service-feedback
Azure Kubernetes Service is een open source project. Selecteer een koppeling om feedback te geven: