Dela via


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 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

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

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

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.

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

Om du skapade Kubernetes-klustret med hjälp av kommandona i föregående handledningar 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 ökar antalet noder till tre i Kubernetes-klustret med namnet 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:

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

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 pods för automatisk skalning som kör appens frontend.
  • Skala Kubernetes-noderna manuellt.

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