Tutorial – dimensionar aplicativos no AKS (Serviço de Kubernetes do Azure)
Se seguiu os tutoriais anteriores, você tem um cluster do Kubernetes funcionando e um aplicativo front do Microsoft Azure Store.
Na parte seis de sete deste tutorial, você dimensionará os pods no aplicativo, tentará dimensionar automaticamente o pod e dimensionará o número de nós de VM do Azure para alterar a capacidade do cluster para hospedar cargas de trabalho. Você aprenderá como:
- Dimensionar os nós Kubernetes.
- Dimensionar pods Kubernetes manualmente que executam seu aplicativo.
- Configurar os 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 do 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 deseja acompanhar este tutorial, comece com Tutorial 1: preparar um aplicativo para o AKS.
Este tutorial requer a CLI do Azure, versão 2.34.1 ou posterior. Execute az --version
para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Dimensionar pods manualmente
Exiba os pods no cluster usando o comando
kubectl get
.kubectl get pods
A saída de exemplo a seguir mostra os pods que executam o aplicativo front do Microsoft Azure Store:
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 store-front usando o comando
kubectl scale
.kubectl scale --replicas=5 deployment.apps/store-front
Verifique se os pods adicionais foram criados usando o comando
kubectl get pods
.kubectl get pods
A saída de exemplo a seguir mostra os pods adicionais que executam o aplicativo front do Microsoft Azure Store:
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
Dimensionamento automático de pods
Para usar o dimensionador automático de pod 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 aks-store-quickstart
, o contêiner de front-end solicita 1m CPU, com um limite de 1000m CPU.
Essas solicitações e os limites de recursos são definidos para cada contêiner conforme mostrado no seguinte exemplo condensado de 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 dimensionador automático e os limites de recursos, conforme mostrado no seguinte arquivo de manifesto condensado de exemplo
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
Aplique o arquivo de manifesto do dimensionador automático usando o comando
kubectl apply
.kubectl apply -f aks-store-quickstart-hpa.yaml
Verifique a status do dimensionador automático usando o comando
kubectl get hpa
.kubectl get hpa
Após alguns minutos, com carga mínima no aplicativo front do Microsoft Azure Store, o número de réplicas de pod diminui para três. Você pode usar
kubectl get pods
novamente para ver os pods desnecessários que está sendo removidos.
Observação
Você pode habilitar o complemento AKS do KEDA (dimensionador automático baseado em eventos) baseado em Kubernetes para seu cluster 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 KEDA (dimensionador automático baseado em eventos) do Kubernetes (versão prévia).
Dimensionar nós do AKS manualmente
Se você criou o cluster Kubernetes usando os comandos nos tutoriais anteriores, seu cluster tem dois nós. Se você quiser aumentar ou diminuir esse valor, poderá ajustar manualmente o número de nós.
O exemplo a seguir aumenta o número de nós para três no cluster Kubernetes chamado myAKSCluster. Esse comando leva alguns minutos para ser concluído.
Escale seus nós de cluster usando o comando
az aks scale
.az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Depois que o cluster for dimensionado com êxito, sua saída será semelhante à seguinte saída de exemplo:
"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 dimensionador automático de cluster com pools de nós.
Próximas etapas
Neste tutorial, você usou diferentes recursos de colocação em escala em seu cluster Kubernetes. Você aprendeu a:
- Dimensionar pods Kubernetes manualmente que executam seu aplicativo.
- Configurar os pods de dimensionamento automático que executam o front-end do aplicativo.
- Dimensionar manualmente os nós de Kubernetes.
No próximo tutorial, você aprenderá a atualizar o Kubernetes no cluster do AKS.
Azure Kubernetes Service