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 š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. Naučíte se, jak:

  • Š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 návod změní počet podů a uzlů a může zvýšit náklady na výpočetní prostředky. Použijte identitu s oprávněním ke škálování úloh AKS a fondů uzlů, jako je přispěvatel nebo vlastník skupiny prostředků.

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ů

Desktopová aplikace AKS

  1. Upravte konfiguraci škálování pro službu order-service výběrem Škálování>Vybrat nasazení: order-service>Upravit konfiguraci>Počet replik: 5. Snímek obrazovky znázorňující úpravu konfigurace škálování služby objednávky

  2. Než budete pokračovat, ověřte, že se aktualizace nasazení dokončila.

  3. 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
    
  4. Ručně změňte počet podů v nasazení store-front pomocí příkazu kubectl scale.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  5. Ověřte, že se vytvořily další pody pomocí příkazu kubectl get pods.

    kubectl get pods --selector app=store-front
    

    Následující příklad výstupu ukazuje další pody, na kterých běží aplikace Front pro Azure Store:

    NAME                              READY     STATUS    RESTARTS   AGE
    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ů

Desktopová aplikace AKS

  1. V Project vyberte tlačítko >Kubernetes YAML. Výběr zdroje aplikace, Kubernetes YAML

  2. Zkopírujte a vložte tento manifest autoscaleru ve formátu YAML a omezení prostředků.

    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
    
  3. Vyberte Další>Nasadit>Zavřít. Snímek obrazovky znázorňující vložení v konfiguraci YAML

  4. Vyberte Možnost Škálování>Vybrat nasazení: Store-front. Uvidíte, že režim škálování je teď nastavený na HPA, omezení replik a využití procesoru / cíl nastavený konfigurací. Snímek obrazovky zobrazující přehled škálování desktopu AKS s režimem HPA pro nasazení store-front.

  5. Ověřte, že je povolený režim HPA a že hranice repliky odpovídají hodnotám manifestu.

Příkazový řádek

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 1 mCPU s limitem 1000 mCPU.

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 autoscaleru pomocí příkazu kubectl apply.

    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. Pomocí příkazu kubectl get pods můžete znovu sledovat, jak se odebírají nepotřebné pody.

    Pokračujte, když sloupce TARGETSREPLICAS zobrazují očekávané chování automatického škálování pro store-front-hpa.

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

Poznámka:

Pokud jste vytvořili cluster AKS Automatic, tyto kroky se nepoužijí, protože cluster automaticky škáluje uzly.

Pokud jste cluster AKS Standard vytvořili pomocí příkazů v předchozích kurzech, cluster má tři 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ů na pět v clusteru Kubernetes s názvem myAKSCluster. Dokončení tohoto příkazu trvá několik minut.

  • Škálujte uzly clusteru az aks scale pomocí příkazu.

    Po úspěšném škálování clusteru se výstup podobá následujícímu příkladu výstupu:

    az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o table
    
    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5
    

    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": 5,
        "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 uzlovými fondy.

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.

Pokud jste hotovi, vyberte ikonu Odstranit a v potvrzovací zprávě vyberte Také odstranit obor názvů. Snímek obrazovky znázorňující odstranění desktopového projektu AKS kliknutím na ikonu koše

V dalším kurzu se dozvíte, jak upgradovat Kubernetes v clusteru AKS.