Sdílet prostřednictvím


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ů

  1. 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
    
  2. Pomocí příkazu ručně změňte počet podů v nasazení kubectl scale store-front.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. 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

  1. 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.yamlmanifestu:

    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
    
  2. Použijte soubor manifestu automatického kubectl apply škálování pomocí příkazu.

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. 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.