Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 altera o número de pods e nós e pode aumentar os custos de computação. Utilize uma identidade com permissão para dimensionar cargas de trabalho do AKS e conjuntos de nós, como Contributor ou Owner no grupo de recursos.
- CLI do Azure
- Azure PowerShell
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 CLI do Azure.
Dimensionar os pods manualmente
AKS Desktop
Edite a configuração de escalonamento do order-service selecionando Escalonamento>Selecionar implementação: order-service>Editar configuração>Número de réplicas: 5.
Verifique se a atualização de implementação está concluída antes de continuar.
Visualize os pods em seu cluster usando o
kubectl getcomando.kubectl get podsA 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 31mAltere manualmente o número de pods na implementação da vitrine usando o
kubectl scalecomando.kubectl scale --replicas=5 deployment.apps/store-frontVerifique se os pods adicionais foram criados usando o
kubectl get podscomando.kubectl get pods --selector app=store-frontA 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
AKS Desktop
No Project, selecione o botão >Kubernetes YAML.
Copie e cole este manifesto do autoescalador YAML e dos 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 Próximo>Desdobrar>Fechar.
Selecione Dimensionamento>Selecione Implementação: store-front. Pode ver que o modo de escalonamento está agora definido para HPA, Limites de Réplica e Uso / Alvo da CPU definidos pela configuração.
Verifique se o modo HPA está ativado e que os limites das réplicas correspondem aos valores do manifesto.
Linha de comandos
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
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: 50Aplique o arquivo de manifesto do autoscaler usando o
kubectl applycomando.kubectl apply -f aks-store-quickstart-hpa.yamlVerifique o status do autoscaler usando o
kubectl get hpacomando.kubectl get hpaApó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 podso comando novamente para ver os pods desnecessários sendo removidos.Continue quando as colunas
TARGETSeREPLICASmostrarem o comportamento esperado de dimensionamento automático destore-front-hpa.
Nota
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
Nota
Se criaste um cluster AKS Automatic, estes passos não se aplicam porque o cluster escala automaticamente os nós.
Se criaste o teu cluster AKS Standard usando os comandos dos tutoriais anteriores, o teu cluster tem três 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 cinco no cluster Kubernetes chamado myAKSCluster. O comando leva alguns minutos para ser concluído.
- CLI do Azure
- Azure PowerShell
Dimensione os nós do cluster usando o
az aks scalecomando.Depois de o cluster escalar com sucesso, a sua saída é 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 5Quando o cluster for dimensionado com êxito, o seu resultado será semelhante ao resultado de exemplo a seguir.
"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 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.
Se terminar, selecione o ícone Apagar e, na mensagem de confirmação, selecione Também apagar o espaço de nomes.
No próximo tutorial, você aprenderá como atualizar o Kubernetes em seu cluster AKS.