Oktatóanyag: Alkalmazások skálázása az Azure Kubernetes Service-ben (AKS)Tutorial: Scale applications in Azure Kubernetes Service (AKS)

Ha követte az oktatóanyagokat, rendelkezik egy működő Kubernetes-fürttel az AK-ban, és üzembe helyezte a minta Azure-beli szavazási alkalmazást.If you've followed the tutorials, you have a working Kubernetes cluster in AKS and you deployed the sample Azure Voting app. 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.In this tutorial, part five of seven, you scale out the pods in the app and try pod autoscaling. 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.You also learn how to scale the number of Azure VM nodes to change the cluster's capacity for hosting workloads. Az alábbiak végrehajtásának módját ismerheti meg:You learn how to:

  • A Kubernetes-csomópontok skálázásaScale the Kubernetes nodes
  • Az alkalmazást futtató Kubernetes-podok manuális skálázásaManually scale Kubernetes pods that run your application
  • Az alkalmazás kezelőfelületét futtató automatikus skálázású podok konfigurálásaConfigure autoscaling pods that run the app front-end

A későbbi oktatóanyagokban az Azure vote alkalmazás új verzióra frissül.In later tutorials, the Azure Vote application is updated to a new version.

ElőkészületekBefore you begin

Az előző oktatóanyagokban egy alkalmazás egy tároló-rendszerképbe van csomagolva.In previous tutorials, an application was packaged into a container image. A rendszerkép fel lett töltve Azure Container Registryba, és létrehozott egy AK-fürtöt.This image was uploaded to Azure Container Registry, and you created an AKS cluster. Az alkalmazás ezután üzembe lett helyezve az AK-fürtön.The application was then deployed to the AKS cluster. 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ó lemezképek létrehozásával.If you haven't done these steps, and would like to follow along, start with Tutorial 1 – Create container images.

Ehhez az oktatóanyaghoz az Azure CLI 2.0.53 vagy újabb verzióját kell futtatnia.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. A verzió azonosításához futtassa a következőt: az --version.Run az --version to find the version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.If you need to install or upgrade, see Install Azure CLI.

Podok manuális méretezéseManually scale pods

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.When the Azure Vote front-end and Redis instance were deployed in previous tutorials, a single replica was created. 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:To see the number and state of pods in your cluster, use the kubectl get command as follows:

kubectl get pods

A következő példa egy előtérbeli podot és egy háttérbeli podot mutat be:The following example output shows one front-end pod and one back-end pod:

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.To manually change the number of pods in the azure-vote-front deployment, use the kubectl scale command. A következő példa 5-re növeli az előtérbeli podok számát:The following example increases the number of front-end pods to 5:

kubectl scale --replicas=5 deployment/azure-vote-front

Futtassa újra a kubectl , és ellenőrizze, hogy az AK sikeresen létrehozta-e a további hüvelyeket.Run kubectl get pods again to verify that AKS successfully creates the additional pods. Egy perc múlva a hüvelyek elérhetők a fürtben:After a minute or so, the pods are available in your cluster:

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éseAutoscale pods

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.Kubernetes supports horizontal pod autoscaling to adjust the number of pods in a deployment depending on CPU utilization or other select metrics. 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.The Metrics Server is used to provide resource utilization to Kubernetes, and is automatically deployed in AKS clusters versions 1.10 and higher. 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:To see the version of your AKS cluster, use the az aks show command, as shown in the following example:

az aks show --resource-group myResourceGroup --name myAKSCluster --query kubernetesVersion --output table

Megjegyzés

Ha az AK-fürt kevesebb, mint 1,10, a metrikák kiszolgálója nem települ automatikusan.If your AKS cluster is less than 1.10, the Metrics Server is not automatically installed. A metrikák kiszolgáló telepítési jegyzékfájli a components.yaml metrikai kiszolgálók kiadásaiban is elérhetők, ami azt jelenti, hogy egy URL-címen keresztül telepítheti őket.Metrics Server installation manifests are available as a components.yaml asset on Metrics Server releases, which means you can install them via a url. Ha többet szeretne megtudni ezekről a YAML-definíciókkal kapcsolatban, tekintse meg a readme telepítési szakaszát.To learn more about these YAML definitions, see the Deployment section of the readme.

Telepítési példa:Example installation:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

Az automéretező használatához a hüvelyben és a hüvelyben lévő összes tárolónak meg kell határoznia a CPU-kérelmeket és-korlátozásokat.To use the autoscaler, all containers in your pods and your pods must have CPU requests and limits defined. Az azure-vote-front üzembe helyezés során az előtér-tároló már 0,25 CPU-t kér, és legfeljebb 0,5 processzorral rendelkezik.In the azure-vote-front deployment, the front-end container already requests 0.25 CPU, with a limit of 0.5 CPU. Ezek az erőforrás-kérelmek és-korlátok az alábbi kódrészletben látható módon vannak meghatározva:These resource requests and limits are defined as shown in the following example snippet:

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.The following example uses the kubectl autoscale command to autoscale the number of pods in the azure-vote-front deployment. Ha az összes hüvely átlagos CPU-kihasználtsága meghaladja a kért használat 50%-át, az autoskálázás legfeljebb 10 példányra növeli a hüvelyt.If average CPU utilization across all pods exceeds 50% of their requested usage, the autoscaler increases the pods up to a maximum of 10 instances. Ezután legalább 3 példányt definiálnak a központi telepítéshez:A minimum of 3 instances is then defined for the deployment:

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

Azt is megteheti, hogy létrehoz egy jegyzékfájlt az autoskálázási viselkedés és az erőforrás-korlátok definiálásához.Alternatively, you can create a manifest file to define the autoscaler behavior and resource limits. Az alábbi példa egy nevű jegyzékfájlt mutat be azure-vote-hpa.yaml .The following is an example of a manifest file named azure-vote-hpa.yaml.

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 használatával kubectl apply alkalmazza a jegyzékfájlban definiált autoskálázást azure-vote-hpa.yaml .Use kubectl apply to apply the autoscaler defined in the azure-vote-hpa.yaml manifest file.

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:To see the status of the autoscaler, use the kubectl get hpa command as follows:

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.After a few minutes, with minimal load on the Azure Vote app, the number of pod replicas decreases automatically to three. Ismét használhatja a kubectl get pods parancsot a szükségtelen podok eltávolításának megtekintéséhez.You can use kubectl get pods again to see the unneeded pods being removed.

AKS-csomópontok manuális méretezéseManually scale AKS nodes

Ha a Kubernetes-fürtöt az előző oktatóanyag parancsaival hozta létre, két csomóponttal rendelkezik.If you created your Kubernetes cluster using the commands in the previous tutorial, it has two nodes. 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.You can adjust the number of nodes manually if you plan more or fewer container workloads on your cluster.

A következő példában háromra növeljük a csomópontok számát a myAKSCluster nevű Kubernetes-fürtben.The following example increases the number of nodes to three in the Kubernetes cluster named myAKSCluster. A parancs végrehajtása eltarthat néhány percig.The command takes a couple of minutes to complete.

az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3

Ha a fürt méretezése sikeresen megtörtént, a kimenet a következő példához hasonló:When the cluster has successfully scaled, the output is similar to following example:

"agentPoolProfiles": [
  {
    "count": 3,
    "dnsPrefix": null,
    "fqdn": null,
    "name": "myAKSCluster",
    "osDiskSizeGb": null,
    "osType": "Linux",
    "ports": null,
    "storageProfile": "ManagedDisks",
    "vmSize": "Standard_D2_v2",
    "vnetSubnetId": null
  }

További lépésekNext steps

Ebben az oktatóanyagban különböző méretezési funkciókat használtunk a Kubernetes-fürtben.In this tutorial, you used different scaling features in your Kubernetes cluster. Megtanulta végrehajtani az alábbi műveleteket:You learned how to:

  • Az alkalmazást futtató Kubernetes-podok manuális skálázásaManually scale Kubernetes pods that run your application
  • Az alkalmazás kezelőfelületét futtató automatikus skálázású podok konfigurálásaConfigure autoscaling pods that run the app front-end
  • A Kubernetes-csomópontok manuális skálázásaManually scale the Kubernetes nodes

A következő oktatóanyag azt mutatja be, hogyan frissítheti az alkalmazásokat a Kubernetesben.Advance to the next tutorial to learn how to update application in Kubernetes.