Oktatóanyag: Alkalmazások skálázása az Azure Kubernetes Service-ben (AKS)
Ha követte az oktatóanyagokat, egy működő Kubernetes-fürtje van az AKS-ben, és üzembe helyezte a minta Azure Voting alkalmazást. Ebben az oktatóanyagban, amely egy hétrészes sorozat ötödik része, horizontálisan felskálázzuk az alkalmazás podjait, továbbá kipróbáljuk a podok automatikus méretezését. Emellett megismerjük, hogyan skálázható az Azure-beli virtuális gépek csomópontjainak száma a fürt kapacitásának beállításához a számítási feladatok futtatása érdekében. Az alábbiak végrehajtásának módját ismerheti meg:
- A Kubernetes-csomópontok skálázása
- Az alkalmazást futtató Kubernetes-podok manuális skálázása
- Az alkalmazás kezelőfelületét futtató automatikus skálázású podok konfigurálása
A későbbi oktatóanyagokban az Azure Vote alkalmazás egy új verzióra frissül.
Előkészületek
A korábbi oktatóanyagokban egy alkalmazást egy tárolórendszerképbe csomagoltak. A rendszerképet feltöltötte a Azure Container Registry, és létrehozott egy AKS-fürtöt. Az alkalmazást ezután üzembe helyezték az AKS-fürtön. Ha még nem tette meg ezeket a lépéseket, és követni szeretné a lépéseket, kezdje az 1. oktatóanyag – Tárolórendszerképek létrehozása című oktatóanyaggal.
Ehhez az oktatóanyaghoz az Azure CLI 2.0.53-es vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt: az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Podok manuális méretezése
Az előző oktatóanyagokban az Azure Vote előtérrendszerének és a Redis-példánynak a telepítésekor egyetlen replika jött létre. A fürtben lévő podok számának és állapotának megtekintéséhez használja a kubectl get parancsot a következőképpen:
kubectl get pods
A következő példa egy előtérbeli podot és egy háttérbeli podot mutat be:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2549686872-4d2r5 1/1 Running 0 31m
azure-vote-front-848767080-tf34m 1/1 Running 0 31m
Ha manuálisan szeretné módosítani az azure-vote-front üzemelő példány podjainak számát, használja a kubectl scale parancsot. A következő példa 5-re növeli az előtérbeli podok számát:
kubectl scale --replicas=5 deployment/azure-vote-front
Futtassa újra a kubectl get podokat annak ellenőrzéséhez, hogy az AKS sikeresen létrehozta-e a további podokat. Egy perc elteltével a podok elérhetők a fürtben:
kubectl get pods
READY STATUS RESTARTS AGE
azure-vote-back-2606967446-nmpcf 1/1 Running 0 15m
azure-vote-front-3309479140-2hfh0 1/1 Running 0 3m
azure-vote-front-3309479140-bzt05 1/1 Running 0 3m
azure-vote-front-3309479140-fvcvm 1/1 Running 0 3m
azure-vote-front-3309479140-hrbf2 1/1 Running 0 15m
azure-vote-front-3309479140-qphz8 1/1 Running 0 3m
Podok automatikus méretezése
A Kubernetes támogatja a podok horizontális felskálázását a környezetekben a podok számának a processzorhasználat vagy egyéb megadott metrikák alapján való módosítása érdekében. A Metrics Server erőforrás-használatot biztosít a Kubernetes számára, üzembe helyezése pedig automatikusan megtörténik az 1.10-es vagy újabb verziójú AKS-fürtökön. Az AKS-fürt verziószámának megtekintéséhez használja az az aks show parancsot az alábbi példában látható módon:
az aks show --resource-group myResourceGroup --name myAKSCluster --query kubernetesVersion --output table
Megjegyzés
Ha az AKS-fürt 1.10-nél kisebb, a metrikakiszolgáló nem lesz automatikusan telepítve. A Metrics Server telepítési jegyzékfájljai eszközként components.yaml
érhetők el a Metrics Server-kiadásokban, ami azt jelenti, hogy url-címen keresztül telepítheti őket. Ezekről a YAML-definíciókról az olvasás üzembe helyezési szakaszában olvashat bővebben.
Példa telepítésre:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
Az automatikus skálázás használatához a podokban és a podokban lévő összes tárolóhoz meg kell határozni a cpu-kérelmeket és a korlátokat. Az üzembe helyezés során az azure-vote-front
előtér-tároló már 0,25 CPU-t kér, 0,5 cpu-korláttal.
Ezek az erőforrás-kérelmek és -korlátok az egyes tárolókhoz vannak definiálva az alábbi példarészletben látható módon:
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
ports:
- containerPort: 80
resources:
requests:
cpu: 250m
limits:
cpu: 500m
Az alábbi példa a kubectl autoscale paranccsal automatikusan skálázza a podok számát az azure-vote-front üzemelő példányban. Ha az összes pod átlagos cpu-kihasználtsága meghaladja a kért használat 50%-át, az automatikus skálázó legfeljebb 10 példányra növeli a podokat. Ezután legalább 3 példány van meghatározva az üzembe helyezéshez:
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
Másik lehetőségként létrehozhat egy jegyzékfájlt az automatikus skálázási viselkedés és az erőforráskorlátok meghatározásához. Az alábbi példa egy nevű jegyzékfájlra azure-vote-hpa.yaml
mutat be.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-back-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-back
targetCPUUtilizationPercentage: 50 # target CPU utilization
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-front-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-front
targetCPUUtilizationPercentage: 50 # target CPU utilization
A jegyzékfájlban azure-vote-hpa.yaml
definiált automatikus skálázó alkalmazásához használhatókubectl apply
.
kubectl apply -f azure-vote-hpa.yaml
Az automatikus skálázó állapotának megtekintéséhez használja a kubectl get hpa
parancsot a következőképpen:
kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
azure-vote-front Deployment/azure-vote-front 0% / 50% 3 10 3 2m
Néhány perc elteltével az Azure Vote alkalmazás minimális terhelése mellett a podreplikák száma automatikusan háromra csökken. Ismét használhatja a kubectl get pods
parancsot a szükségtelen podok eltávolításának megtekintéséhez.
Megjegyzés
További példák a vízszintes pod automatikus skálázási funkciójának használatára: HorizontalPodAutoscaler Walkthrough.
AKS-csomópontok manuális méretezése
Ha az előző oktatóanyag parancsaival hozta létre a Kubernetes-fürtöt, az két csomóponttal rendelkezik. A csomópontok számát manuálisan módosíthatja, ha több vagy kevesebb, tárolókhoz kapcsolódó számítási feladatot tervez futtatni a fürtön.
A következő példában háromra növeljük a csomópontok számát a myAKSCluster nevű Kubernetes-fürtben. A parancs végrehajtása eltarthat néhány percig.
az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
A fürt sikeres skálázása után a kimenet a következő példához hasonló:
"agentPoolProfiles": [
{
"count": 3,
"dnsPrefix": null,
"fqdn": null,
"name": "myAKSCluster",
"osDiskSizeGb": null,
"osType": "Linux",
"ports": null,
"storageProfile": "ManagedDisks",
"vmSize": "Standard_D2_v2",
"vnetSubnetId": null
}
Következő lépések
Ebben az oktatóanyagban különböző méretezési funkciókat használtunk a Kubernetes-fürtben. Megtanulta végrehajtani az alábbi műveleteket:
- Az alkalmazást futtató Kubernetes-podok manuális skálázása
- Az alkalmazás kezelőfelületét futtató automatikus skálázású podok konfigurálása
- A Kubernetes-csomópontok manuális skálázása
A következő oktatóanyag azt mutatja be, hogyan frissítheti az alkalmazásokat a Kubernetesben.