Tutorial – Implantar um aplicativo no AKS (Serviço de Kubernetes do Azure)
Kubernetes fornece uma plataforma distribuída para aplicativos em contêineres. Você compilar e implanta seus próprios aplicativos e serviços em um cluster Kubernetes e permite que o cluster gerencie a disponibilidade e a conectividade.
Neste tutorial, parte quatro de sete, você implanta um aplicativo de exemplo em um cluster Kubernetes. Você aprenderá como:
- Atualize um arquivo de manifesto do Kubernetes.
- Execute um aplicativo no Kubernetes.
- Teste o aplicativo.
Dica
Com o AKS será possível usar as seguintes abordagens para o gerenciamento de configuração:
GitOps: permite que as declarações do estado do cluster sejam aplicadas automaticamente ao cluster. Para saber como usar o GitOps para implantar um aplicativo com um cluster do AKS, confira o os pré-requisitos para clusters do Serviço de Kubernetes do Azure no tutorial GitOps com Flux v2.
DevOps: permite criar, testar e implantar com CI (integração contínua) e CD (entrega contínua). Para conferir exemplos de como usar o DevOps para implantar um aplicativo com um cluster do AKS, consulte Criar e implantar no AKS com o Azure Pipelines ou GitHub Actions para implantação no Kubernetes.
Antes de começar
Nos tutoriais anteriores, você colocou um aplicativo em uma imagem de contêiner, carregamos a imagem no Registro de Contêiner do Azure e criamos um cluster do Kubernetes. Para concluir este tutorial, você precisa do arquivo de manifesto do Kubernetes aks-store-quickstart.yaml
pré-criado. Esse arquivo foi baixado no código-fonte do aplicativo do Tutorial 1 – preparar o aplicativo para o AKS.
Este tutorial exige a CLI do Azure versão 2.0.53 ou posterior. Verifique sua versão com az --version
. Para instalar ou atualizar, confira Instalar a CLI do Azure.
Atualizar o arquivo de manifesto
Nesses tutoriais, a instância de Registro de Contêiner do Azure (ACR) armazena as imagens de contêiner do aplicativo de exemplo. Para implantar o aplicativo, você deve atualizar os nomes da imagem no arquivo de manifesto do Kubernetes para incluir o nome do servidor de logon do ACR.
Obtenha o endereço do servidor de logon usando o comando
az acr list
e consulte o servidor de logon.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Verifique se você está no diretório clonado aks-store-demo e, em seguida, abra o arquivo de manifesto
aks-store-quickstart.yaml
com um editor de texto.Atualize a propriedade
image
para os contêineres substituindo ghcr.io/azure-samples pelo nome do servidor de logon do ACR.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Salve e feche o arquivo.
Executar o aplicativo
Execute o trabalho usando o comando
kubectl apply
, que analisa o arquivo de manifesto e cria os objetos definidos do Kubernetes.kubectl apply -f aks-store-quickstart.yaml
A saída de exemplo a seguir mostra os recursos criados com êxito no cluster AKS:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Verifique se a implantação foi bem-sucedida exibindo os pods com
kubectl
kubectl get pods
Testar o aplicativo
Quando o aplicativo é executado, um serviço de Kubernetes expõe o front-end do aplicativo à Internet. A conclusão desse processo pode levar alguns minutos.
Linha de Comando
Monitore o andamento usando o comando
kubectl get service
com o argumento--watch
.kubectl get service store-front --watch
Inicialmente, o
EXTERNAL-IP
do serviçostore-front
é mostrado como<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quando o endereço
EXTERNAL-IP
mudar de<pending>
para um endereço IP público, useCTRL-C
para interromper o processo de observaçãokubectl
.A seguinte saída de exemplo mostra um endereço IP público válido atribuído ao serviço:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Exiba o aplicativo em ação abrindo um navegador da Web e navegando para o endereço IP externo do seu serviço:
http://<external-ip>
.
Se o aplicativo não for carregado, isso pode indicar um problema de autorização com o registro da imagem. Para exibir o status de seus contêineres, use o comando kubectl get pods
. Se você não conseguir efetuar pull das imagens de contêiner, confira Autenticar com o Registro de Contêiner do Azure no Serviço de Kubernetes do Azure.
Portal do Azure
Navegue até o portal do Azure para encontrar suas informações de implantação.
Navegue até o recurso de seu cluster do AKS.
No menu de serviço, em Recursos do Kubernetes, selecione Serviços e entradas.
Copie o IP Externo mostrado na coluna para o
store-front
serviço.Cole o IP no seu navegador para visitar a página da sua loja.
Limpar os recursos
Como você validou a funcionalidade do aplicativo, agora pode remover o cluster do aplicativo. Implantaremos o aplicativo novamente no próximo tutorial.
Para interromper e remover os recursos e as instâncias do contêiner, use o comando
kubectl delete
.kubectl delete -f aks-store-quickstart.yaml
Verifique se todos os pods de aplicativos foram removidos usando o comando
kubectl get pods
.kubectl get pods
Próximas etapas
Neste tutorial, você implantou um aplicativo Azure de exemplo em um cluster do Kubernetes no AKS. Você aprendeu a:
- Atualize um arquivo de manifesto do Kubernetes.
- Execute um aplicativo no Kubernetes.
- Teste o aplicativo.
No próximo tutorial, você aprenderá a usar os serviços de PaaS em cargas de trabalho com estado no Kubernetes.
Azure Kubernetes Service