Partilhar via


Tutorial - Dimensionar aplicativos no Serviço Kubernetes do Azure (AKS)

Se você seguiu os tutoriais anteriores, tem um cluster Kubernetes em funcionamento e um aplicativo Azure Store Front.

Neste tutorial, você dimensiona os pods no aplicativo, experimenta o dimensionamento automático do pod e dimensiona o número de nós de VM do Azure para alterar a capacidade do cluster para hospedar cargas de trabalho. Você aprende a:

  • Dimensione os nós do Kubernetes.
  • Dimensione manualmente os pods do Kubernetes que executam seu aplicativo.
  • Configure pods de dimensionamento automático que executam o front-end do aplicativo.

Antes de começar

Em tutoriais anteriores, você empacotou um aplicativo em uma imagem de contêiner, carregou a imagem no Registro de Contêiner do Azure, criou um cluster AKS, implantou um aplicativo e usou o Barramento de Serviço do Azure para reimplantar um aplicativo atualizado. Se você não concluiu essas etapas e quer acompanhar, comece com o Tutorial 1 - Preparar a inscrição para o AKS.

Este tutorial requer a CLI do Azure versão 2.34.1 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI.

Dimensionar os pods manualmente

  1. Visualize os pods em seu cluster usando o kubectl get comando.

    kubectl get pods
    

    A saída de exemplo a seguir mostra os pods que executam o aplicativo Azure Store Front:

    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. Altere manualmente o número de pods na implementação da vitrine usando o kubectl scale comando.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. Verifique se os pods adicionais foram criados usando o kubectl get pods comando.

    kubectl get pods --selector app=store-front
    

    A saída de exemplo a seguir mostra os pods adicionais que executam a aplicação Azure Store Front:

    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
    

Pods de escala automática

Para usar o pod autoscaler horizontal, todos os contêineres devem ter solicitações e limites de CPU definidos, e os pods devem ter solicitações especificadas. Na implementação, o aks-store-quickstart contenedor front-end solicita 1m CPU com um limite de 1000m CPU.

Essas solicitações de recursos e limites são definidos para cada contêiner, conforme mostrado no seguinte exemplo condensado 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
...

Dimensionamento automático de pods usando um arquivo de manifesto

  1. Crie um arquivo de manifesto para definir o comportamento do autoscaler e os limites de recursos, conforme mostrado no seguinte arquivo aks-store-quickstart-hpa.yamlde manifesto de exemplo condensado:

    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. Aplique o arquivo de manifesto do autoscaler usando o kubectl apply comando.

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. Verifique o status do autoscaler usando o kubectl get hpa comando.

    kubectl get hpa
    

    Após alguns minutos, com carga mínima na aplicação Azure Store Front, o número de réplicas de pod diminui para três. Você pode usar kubectl get pods o comando novamente para ver os pods desnecessários sendo removidos.

Note

Você pode habilitar o complemento AKS baseado em Kubernetes Event-Driven Autoscaler (KEDA) para seu cluster para impulsionar o dimensionamento com base no número de eventos que precisam ser processados. Para obter mais informações, consulte Habilitar o dimensionamento automático simplificado de aplicativos com o complemento Kubernetes Event-Driven Autoscaling (KEDA) (Visualização).

Dimensionar manualmente os nós do AKS

Se você criou seu cluster Kubernetes usando os comandos nos tutoriais anteriores, seu cluster tem dois nós. Se você quiser aumentar ou diminuir essa quantidade, você pode ajustar manualmente o número de nós.

O exemplo a seguir aumenta o número de nós para três no cluster do Kubernetes chamado myAKSCluster. O comando leva alguns minutos para ser concluído.

  • Dimensione os nós do cluster usando o az aks scale comando.

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

    Quando o cluster for dimensionado com êxito, o seu resultado será semelhante ao resultado de exemplo a seguir.

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

Você também pode dimensionar automaticamente os nós em seu cluster. Para obter mais informações, consulte Usar o escalador automático de clusters com grupos de nós.

Próximos passos

Neste tutorial, você usou diferentes recursos de dimensionamento em seu cluster Kubernetes. Você aprendeu a:

  • Dimensione manualmente os pods do Kubernetes que executam seu aplicativo.
  • Configure pods de dimensionamento automático que executam o front-end do aplicativo.
  • Redimensione manualmente os nodes do Kubernetes.

No próximo tutorial, você aprenderá como atualizar o Kubernetes em seu cluster AKS.