Zelfstudie: Toepassingen schalen in Azure Kubernetes Service (AKS)

Als u de vorige zelfstudies hebt gevolgd, hebt u een werkend Kubernetes-cluster en een Azure Store Front-app.

In deze zelfstudie, deel zes van zeven, schaalt u de pods in de app uit, probeert u pods automatisch schalen en schaalt u het aantal Azure VM-knooppunten om de capaciteit van het cluster voor het hosten van workloads te wijzigen. U leert het volgende:

  • Schaal de Kubernetes-knooppunten.
  • Schaal kubernetes-pods die uw toepassing uitvoeren handmatig.
  • Configureer automatische schaalaanpassing van pods waarop de front-end van de app wordt uitgevoerd.

Voordat u begint

In eerdere zelfstudies hebt u een toepassing verpakt in een containerinstallatiekopie, de installatiekopie geüpload naar Azure Container Registry, een AKS-cluster gemaakt, een toepassing geïmplementeerd en Azure Service Bus gebruikt om een bijgewerkte toepassing opnieuw te implementeren. Als u deze stappen nog niet hebt voltooid en u deze wilt volgen, begint u met zelfstudie 1: De toepassing voorbereiden voor AKS.

Voor deze zelfstudie is Azure CLI versie 2.34.1 of hoger vereist. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Schillen handmatig schalen

  1. Bekijk de pods in uw cluster met behulp van de kubectl get opdracht.

    kubectl get pods
    

    In de volgende voorbeelduitvoer ziet u de pods waarop de Azure Store Front-app wordt uitgevoerd:

    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. Wijzig handmatig het aantal pods in de store-front-implementatie met behulp van de kubectl scale opdracht.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. Controleer of de extra pods zijn gemaakt met behulp van de kubectl get pods opdracht.

    kubectl get pods
    

    In de volgende voorbeelduitvoer ziet u de extra pods waarop de Azure Store Front-app wordt uitgevoerd:

                                      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
    

Schillen automatisch schalen

Als u de horizontale automatische schaalaanpassing van pods wilt gebruiken, moeten alle containers CPU-aanvragen en -limieten hebben gedefinieerd en moeten pods opgegeven aanvragen hebben. In de aks-store-quickstart implementatie vraagt de front-endcontainer 1m CPU aan met een limiet van 1000m CPU.

Deze resourceaanvragen en -limieten worden gedefinieerd voor elke container, zoals wordt weergegeven in het volgende verkorte voorbeeld van 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
...

Pods automatisch schalen met behulp van een manifestbestand

  1. Maak een manifestbestand om het gedrag van automatische schaalaanpassing en resourcelimieten te definiëren, zoals wordt weergegeven in het volgende verkorte voorbeeldmanifestbestand 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. Pas het manifestbestand voor automatisch schalen toe met behulp van de kubectl apply opdracht.

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. Controleer de status van de automatische schaalaanpassing met behulp van de kubectl get hpa opdracht.

    kubectl get hpa
    

    Na een paar minuten, met minimale belasting van de Azure Store Front-app, neemt het aantal podreplica's af tot drie. U kunt kubectl get pods opnieuw gebruiken om te zien dat de overbodige pods worden verwijderd.

Notitie

U kunt de AKS-invoegtoepassing op basis van Kubernetes op basis van gebeurtenisgestuurde automatische schaalaanpassing (KEDA) inschakelen voor uw cluster om schaalaanpassing te stimuleren op basis van het aantal gebeurtenissen dat moet worden verwerkt. Zie Vereenvoudigde schaalaanpassing van toepassingen inschakelen met de invoegtoepassing Kubernetes Event-Driven Autoscaling (KEDA) (Preview) voor meer informatie.

AKS-knooppunten handmatig schalen

Als u uw Kubernetes-cluster hebt gemaakt met behulp van de opdrachten in de vorige zelfstudies, heeft uw cluster twee knooppunten. Als u dit aantal wilt verhogen of verlagen, kunt u het aantal knooppunten handmatig aanpassen.

In het volgende voorbeeld wordt het aantal knooppunten in het Kubernetes-cluster myAKSCluster verhoogd tot drie. Het uitvoeren van deze opdracht duurt enkele minuten.

  • Schaal uw clusterknooppunten met behulp van de az aks scale opdracht.

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

    Zodra het cluster is geschaald, is uw uitvoer vergelijkbaar met de volgende voorbeelduitvoer:

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

U kunt de knooppunten in uw cluster ook automatisch schalen. Zie De automatische schaalaanpassing van clusters gebruiken met knooppuntgroepen voor meer informatie.

Volgende stappen

In deze zelfstudie hebt u verschillende schaalfuncties in uw Kubernetes-cluster gebruikt. U hebt geleerd hoe u:

  • Schaal kubernetes-pods die uw toepassing uitvoeren handmatig.
  • Configureer automatische schaalaanpassing van pods waarop de front-end van de app wordt uitgevoerd.
  • Schaal de Kubernetes-knooppunten handmatig.

In de volgende zelfstudie leert u hoe u Kubernetes bijwerken in uw AKS-cluster.