Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u de vorige zelfstudies hebt gevolgd, hebt u een werkend Kubernetes-cluster en een Azure Store Front-app.
In deze zelfstudie 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.
Voordat u begint
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.
Schillen handmatig schalen
Bekijk de pods in uw cluster met behulp van de
kubectl getopdracht.kubectl get podsIn 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 31mWijzig handmatig het aantal pods in de store-front-implementatie met behulp van de
kubectl scaleopdracht.kubectl scale --replicas=5 deployment.apps/store-frontControleer of de extra pods zijn gemaakt met behulp van de
kubectl get podsopdracht.kubectl get pods --selector app=store-frontIn de volgende voorbeelduitvoer ziet u de extra pods waarop de Azure Store Front-app wordt uitgevoerd:
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
Schillen automatisch schalen
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
...
Pods automatisch schalen met behulp van een manifestbestand
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: 50Pas het manifestbestand voor automatisch schalen toe met behulp van de
kubectl applyopdracht.kubectl apply -f aks-store-quickstart-hpa.yamlControleer de status van de automatische schaalaanpassing met behulp van de
kubectl get hpaopdracht.kubectl get hpaNa een paar minuten, met minimale belasting van de Azure Store Front-app, neemt het aantal podreplica's af tot drie. U kunt de opdracht opnieuw gebruiken
kubectl get podsom 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.
AKS-knooppunten handmatig schalen
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 scaleopdracht.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3Zodra 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.
Volgende stappen
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