Kurz – Škálování aplikací ve službě Azure Kubernetes Service (AKS)
Pokud jste postupovali podle předchozích kurzů, máte funkční cluster Kubernetes a aplikaci Front pro Azure Store.
V tomto kurzu, který je šestou částí sedmidílné části, škálujete pody v aplikaci, vyzkoušíte automatické škálování podů a škálujete počet uzlů virtuálních počítačů Azure, abyste změnili kapacitu clusteru pro hostování úloh. Získáte informace pro:
- Škálujte uzly Kubernetes.
- Ručně škálujte pody Kubernetes, které spouští vaši aplikaci.
- Nakonfigurujte pody automatického škálování, na kterých běží front-end aplikace.
Než začnete
V předchozích kurzech jste aplikaci zabalili do image kontejneru, nahráli ji do služby Azure Container Registry, vytvořili cluster AKS, nasadili aplikaci a použili službu Azure Service Bus k opětovnému nasazení aktualizované aplikace. Pokud jste tyto kroky ještě nedokončili a chcete postupovat podle pokynů, začněte kurzem 1 – Příprava aplikace pro AKS.
Tento kurz vyžaduje Azure CLI verze 2.34.1 nebo novější. Verzi zjistíte spuštěním příkazu az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Ruční škálování podů
Pomocí příkazu zobrazte pody ve vašem clusteru
kubectl get
.kubectl get pods
Následující příklad výstupu ukazuje pody, na kterých běží aplikace Front pro Azure Store:
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
Pomocí příkazu ručně změňte počet podů v nasazení
kubectl scale
store-front.kubectl scale --replicas=5 deployment.apps/store-front
Pomocí příkazu ověřte, že se vytvořily
kubectl get pods
další pody.kubectl get pods
Následující příklad výstupu ukazuje další pody, na kterých běží aplikace Front pro Azure Store:
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
Automatické škálování podů
Aby bylo možné použít horizontální automatické škálování podů, musí mít všechny kontejnery definované požadavky na procesor a limity a pody musí mít zadané požadavky. aks-store-quickstart
V nasazení front-endový kontejner požaduje 1m procesor s limitem 1000m procesoru.
Tyto požadavky a omezení prostředků jsou definované pro každý kontejner, jak je znázorněno v následujícím zhuštěném příkladu 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
...
Automatické škálování podů pomocí souboru manifestu
Vytvořte soubor manifestu, který definuje chování automatického škálování a omezení prostředků, jak je znázorněno v následujícím zhuštěném ukázkovém souboru
aks-store-quickstart-hpa.yaml
manifestu: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
Použijte soubor manifestu automatického
kubectl apply
škálování pomocí příkazu.kubectl apply -f aks-store-quickstart-hpa.yaml
Pomocí příkazu zkontrolujte stav automatického škálování
kubectl get hpa
.kubectl get hpa
Po několika minutách se s minimálním zatížením aplikace Azure Store Front sníží počet replik podů na tři. Opětovným použitím příkazu
kubectl get pods
můžete zobrazit odebírání nepotřebných podů.
Poznámka:
Doplněk AKS (KEDA) založený na událostech Kubernetes můžete do clusteru povolit, aby bylo možné řídit škálování na základě počtu událostí, které je potřeba zpracovat. Další informace najdete v tématu Povolení zjednodušeného automatického škálování aplikací pomocí doplňku KEDA (Event-Driven Autoscaling) Kubernetes (Preview).
Ruční škálování uzlů AKS
Pokud jste cluster Kubernetes vytvořili pomocí příkazů v předchozích kurzech, cluster má dva uzly. Pokud chcete tuto částku zvýšit nebo snížit, můžete počet uzlů upravit ručně.
Následující příklad zvýší počet uzlů v clusteru Kubernetes s názvem myAKSCluster na tři. Dokončení tohoto příkazu trvá několik minut.
Škálujte uzly clusteru
az aks scale
pomocí příkazu.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Po úspěšném škálování clusteru bude výstup podobný následujícímu příkladu výstupu:
"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 ... } ... ]
Uzly v clusteru můžete také automaticky škálovat. Další informace najdete v tématu Použití automatického škálování clusteru s fondy uzlů.
Další kroky
V tomto kurzu jste v clusteru Kubernetes využili různé funkce škálování. Naučili jste se:
- Ručně škálujte pody Kubernetes, které spouští vaši aplikaci.
- Nakonfigurujte pody automatického škálování, na kterých běží front-end aplikace.
- Ručně škálujte uzly Kubernetes.
V dalším kurzu se dozvíte, jak upgradovat Kubernetes v clusteru AKS.
Azure Kubernetes Service