Självstudie – Skala program i Azure Kubernetes Service (AKS)

Om du har följt de tidigare självstudierna har du ett fungerande Kubernetes-kluster och En Front-app i Azure Store.

I den här självstudien, del sex av sju, skalar du ut poddarna i appen, provar autoskalning av poddar och skalar antalet virtuella Azure-noder för att ändra klustrets kapacitet för att hantera arbetsbelastningar. Du lär dig att:

  • Skala Kubernetes-noderna.
  • Skala Kubernetes-poddar manuellt som kör ditt program.
  • Konfigurera poddar för automatisk skalning som kör appens klientdel.

Innan du börjar

I tidigare självstudier paketerade du ett program i en containeravbildning, laddade upp avbildningen till Azure Container Registry, skapade ett AKS-kluster, distribuerade ett program och använde Azure Service Bus för att distribuera om ett uppdaterat program. Om du inte har slutfört de här stegen och vill följa med börjar du med Självstudie 1 – Förbereda programmet för AKS.

Den här självstudien kräver Azure CLI version 2.34.1 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Skala poddar manuellt

  1. Visa poddarna i klustret med hjälp av kubectl get kommandot .

    kubectl get pods
    

    Följande exempelutdata visar poddarna som kör Azure Store Front-appen:

    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. Ändra manuellt antalet poddar i distributionen på butiksfrontenkubectl scale med hjälp av kommandot .

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. Kontrollera att ytterligare poddar har skapats med kommandot kubectl get pods .

    kubectl get pods
    

    Följande exempelutdata visar de ytterligare poddar som kör Azure Store Front-appen:

                                      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
    

Automatisk skalning av poddar

Om du vill använda den vågräta autoskalningsappen för poddar måste alla containrar ha definierade CPU-begäranden och gränser, och poddar måste ha angivna begäranden. I distributionen aks-store-quickstartbegär klientdelscontainern 1 miljon processorer med en gräns på 1 000 m CPU.

Dessa resursbegäranden och begränsningar definieras för varje container, enligt följande komprimerade exempel 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
...

Autoskalning av poddar med hjälp av en manifestfil

  1. Skapa en manifestfil för att definiera autoskalningsbeteendet och resursbegränsningarna, enligt följande komprimerade exempelmanifestfil aks-store-quickstart-hpa.yaml:

    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. Använd autoskalningsmanifestfilen med kommandot kubectl apply .

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. Kontrollera statusen för autoskalningen med hjälp av kubectl get hpa kommandot .

    kubectl get hpa
    

    Efter några minuter, med minimal belastning på Azure Store Front-appen, minskar antalet poddrepliker till tre. Du kan använda kubectl get pods igen om du vill visa de onödiga poddarna som tas bort.

Kommentar

Du kan aktivera AKS-tillägget Kubernetes-baserad händelsedriven autoskalning (KEDA) till klustret för att driva skalning baserat på antalet händelser som behöver bearbetas. Mer information finns i Aktivera förenklad automatisk skalning av program med tillägget Kubernetes Event-Driven Autoscaling (KEDA) (förhandsversion).

Skala AKS-noder manuellt

Om du skapade kubernetes-klustret med hjälp av kommandona i föregående självstudier har klustret två noder. Om du vill öka eller minska den här mängden kan du justera antalet noder manuellt.

I följande exempel ökas antalet agentnoder till tre i Kubernetes-klustret med namn myAKSCluster. Det tar några minuter att slutföra kommandot.

  • Skala dina klusternoder med kommandot az aks scale .

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

    När klustret har skalats kommer dina utdata att likna följande exempelutdata:

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

Du kan också autoskala noderna i klustret. Mer information finns i Använda autoskalning av kluster med nodpooler.

Nästa steg

I den här självstudien har du använt olika skalningsfunktioner i Kubernetes-klustret. Du har lärt dig att:

  • Skala Kubernetes-poddar manuellt som kör ditt program.
  • Konfigurera poddar för automatisk skalning som kör appens klientdel.
  • Skala Kubernetes-noderna manuellt.

I nästa självstudie får du lära dig hur du uppgraderar Kubernetes i ditt AKS-kluster.