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, parte seis de sete, 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. Sabe como:
- 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, veja Install Azure CLI (Instalar o Azure CLI).
Dimensionar pods manualmente
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
Altere manualmente o número de pods na implantação da vitrine usando o
kubectl scale
comando.kubectl scale --replicas=5 deployment.apps/store-front
Verifique se os pods adicionais foram criados usando o
kubectl get pods
comando.kubectl get pods
A saída de exemplo a seguir mostra os pods adicionais que executam o aplicativo Azure Store Front:
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
Dimensionar pods automaticamente
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 implantação, o aks-store-quickstart
contêiner front-end solicita 1m de CPU com um limite de 1000m de 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
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.yaml
de 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
Aplique o arquivo de manifesto do autoscaler usando o
kubectl apply
comando.kubectl apply -f aks-store-quickstart-hpa.yaml
Verifique o status do autoscaler usando o
kubectl get hpa
comando.kubectl get hpa
Após alguns minutos, com carga mínima no aplicativo Azure Store Front, o número de réplicas de pod diminui para três. Pode utilizar
kubectl get pods
novamente para ver os pods que não são precisos a serem removidos.
Nota
Você pode habilitar o complemento AKS KEDA (Event-Driven Autoscaler) baseado em Kubernetes 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) (Preview).
Dimensionar nós do AKS manualmente
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 seguinte aumenta o número de nós para três no cluster do Kubernetes denominado myAKSCluster. O comando demora poucos minutos a concluir.
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, sua saída será semelhante à saída 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 autoscaler de cluster com pools de nós.
Próximos passos
Neste tutorial, utilizou diferentes funcionalidades de dimensionamento no seu cluster Kubernetes. 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.
- Dimensione manualmente os nós do Kubernetes.
No próximo tutorial, você aprenderá como atualizar o Kubernetes em seu cluster AKS.
Azure Kubernetes Service