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.yamlmutat 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.