Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se seguiu os tutoriais anteriores, você tem um cluster do Kubernetes funcionando e um aplicativo front do Microsoft Azure Store.
Neste tutorial, você dimensiona os pods no aplicativo, tenta dimensionar automaticamente o 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ê 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 altera o número de pods e de nós e pode aumentar os custos de computação. Use uma identidade com permissão para dimensionar cargas de trabalho e pools de nós do AKS, como Colaborador ou Proprietário para o grupo de recursos.
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
Área de trabalho do AKS
Edite a configuração de dimensionamento para o order-service selecionando Dimensionamento>Selecionar implantação: order-service>Editar configuração>Número de réplicas: 5.
Verifique se a atualização de implantação foi concluída antes de continuar.
Exiba os pods no cluster usando o comando
kubectl get.kubectl get podsA 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 31mAltere manualmente o número de pods na implantação store-front usando o comando
kubectl scale.kubectl scale --replicas=5 deployment.apps/store-frontVerifique se os pods adicionais foram criados usando o comando
kubectl get pods.kubectl get pods --selector app=store-frontA saída de exemplo a seguir mostra os pods adicionais que executam o aplicativo Front da Microsoft Azure Store:
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
Dimensionamento automático de pods
Área de trabalho do AKS
No projeto, selecione o botão Implantar aplicativo>Kubernetes YAML.
Copie e cole esse manifesto do dimensionador automático YAML e os limites de recursos.
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: 50Selecione Avançar>Implantar>Fechar.
Selecione Dimensionar>Selecionar Implantação: store-front. Você pode ver que o modo de dimensionamento agora está definido como HPA, Limites de Réplica e Uso da CPU/Destino definidos pela configuração.
Verifique se o modo HPA está habilitado e se os limites da réplica correspondem aos valores de manifesto.
Linha de comando
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: 50Aplique o arquivo de manifesto do dimensionador automático usando o comando
kubectl apply.kubectl apply -f aks-store-quickstart-hpa.yamlVerifique a status do dimensionador automático usando o comando
kubectl get hpa.kubectl get hpaApós alguns minutos, com carga mínima no aplicativo Front da Microsoft Azure Store, o número de réplicas de pod diminui para três. Você pode usar o comando
kubectl get podsnovamente para conferir os pods desnecessários que estão sendo removidos.Continue quando as colunas
TARGETSeREPLICASmostrarem o comportamento de escalonamento automático esperado parastore-front-hpa.
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
Observação
Se você criou um cluster automático do AKS, essas etapas não se aplicam porque o cluster dimensiona automaticamente nós.
Se você criou seu cluster AKS Standard usando os comandos nos tutoriais anteriores, seu cluster tem três 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 cinco 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.Depois que o cluster for dimensionado com êxito, sua saída será semelhante à seguinte saída de exemplo:
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o tableaz aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5Depois que o cluster for dimensionado com êxito, sua saída será semelhante à seguinte saída de exemplo:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 5, "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.
Se terminar, selecione o ícone Excluir e, na mensagem de confirmação, selecione Também excluir o namespace.
No próximo tutorial, você aprenderá a atualizar o Kubernetes no cluster do AKS.