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 Azure Store Front-app.

I den här självstudien skalar du ut poddarna i appen, provar automatisk skalning 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 Kubernetesnoderna.
  • Skala Kubernetes-poddar manuellt som kör ditt program.
  • Konfigurera poddar för automatisk skalning som kör appens frontend.

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 ändrar antalet poddar och noder och kan öka beräkningskostnaderna. Använd en identitet med behörighet att skala AKS-arbetsbelastningar och nodpooler, till exempel Deltagare eller Ägare för resursgruppen.

Den här handledningen 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, se Installera Azure CLI.

Skala poddar manuellt

AKS Desktop

  1. Redigera skalningskonfigurationen för ordertjänsten genom att välja Skalning>Välj distribution: ordertjänst>Redigera konfigurationsnummer>för repliker: 5. Skärmbild som visar hur du redigerar skalningskonfigurationen för beställningstjänsten.

  2. Kontrollera att distributionsuppdateringen slutförs innan du fortsätter.

  3. 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
    
  4. Ändra antalet poddar manuellt i driftsättningen av butiksfronten med hjälp av kubectl scale kommandot.

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

    kubectl get pods --selector app=store-front
    

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

    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
    

Autoskalning av poddar

AKS Desktop

  1. I Project väljer du knappen >Kubernetes YAML. Välj programkällan Kubernetes YAML

  2. Kopiera och klistra in yaml-autoskalningsmanifestet och resursbegränsningarna.

    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. Välj Nästa>distribuera>stäng. Skärmbild som visar inklistring i YAML-konfigurationen.

  4. Välj Skalning>Välj distribution: store-front. Du kan se att skalningsläget nu är inställt på HPA, Replikgräns och CPU-användning/mål som angetts av konfigurationen. Skärmbild som visar översikten över skrivbordsskalning i AKS med HPA-läge för store-front-distributionen.

  5. Kontrollera att HPA-läget är aktiverat och att replikgränsen matchar manifestvärdena.

Kommandorad

Om du vill använda den horisontella autoskalaren för poddar måste alla containrar ha definierade CPU-förfrågningar och gränser, och poddar måste ha angivna förfrågningar. I distributionen aks-store-quickstart begär klientdelscontainern 1 milliCPU med en gräns på 1000 milliCPU.

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, när Azure Store Front-appen har minimal belastning, minskar antalet pod-repliker till tre. Du kan använda kommandot kubectl get pods igen för att se de onödiga poddar som tas bort.

    Fortsätt när kolumnerna TARGETS och REPLICAS visar förväntat autoskalningsbeteende för store-front-hpa.

Note

Du kan aktivera AKS-tillägget Kubernetes-baserad Event-Driven Autoscaler (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

Note

Om du har skapat ett AKS-automatiskt kluster gäller inte de här stegen eftersom klustret autoskalar noder.

Om du har skapat ditt AKS Standard-kluster med hjälp av kommandona i de tidigare självstudierna, har klustret tre noder. Om du vill öka eller minska den här mängden kan du justera antalet noder manuellt.

I följande exempel ökar antalet noder till fem i Kubernetes-klustret med namnet myAKSCluster. Det tar några minuter att slutföra kommandot.

  • Skala dina klusternoder med kommandot az aks scale .

    När klustret skalas korrekt liknar dina utdata följande exempelutdata:

    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
    

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

    "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
        ...
      }
      ...
    ]
    

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 använde du olika skalningsfunktioner i ditt Kubernetes-kluster. 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 frontend.
  • Skala Kubernetes-noderna manuellt.

Om du är klar väljer du ikonen Ta bort och i bekräftelsemeddelandet väljer du Ta också bort namnområdet. Skärmbild som visar hur du tar bort AKS-skrivbordsprojektet genom att klicka på papperskorgsikonen.

I nästa handledning kommer du att lära dig hur du uppgraderar Kubernetes i ditt AKS-kluster.