Tutorial - Implantar um aplicativo no Serviço Kubernetes do Azure (AKS)
O Kubernetes dispõe de uma plataforma distribuída para aplicações em contentores. Você cria 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. Sabe como:
- Atualize um arquivo de manifesto do Kubernetes.
- Execute um aplicativo no Kubernetes.
- Testar a aplicação.
Gorjeta
Com o AKS, você pode usar as seguintes abordagens para gerenciamento de configuração:
GitOps: Permite que as declarações do estado do cluster se apliquem automaticamente ao cluster. Para saber como usar o GitOps para implantar um aplicativo com um cluster AKS, consulte os pré-requisitos para clusters do Serviço Kubernetes do Azure no tutorial GitOps com Flux v2 .
DevOps: Permite criar, testar e implantar com integração contínua (CI) e entrega contínua (CD). Para ver exemplos de como usar o DevOps para implantar um aplicativo com um cluster AKS, consulte Criar e implantar no AKS com o Azure Pipelines ou Ações do GitHub para implantação no Kubernetes.
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 e criou um cluster Kubernetes. Para concluir este tutorial, você precisa do arquivo de manifesto do Kubernetes pré-criado aks-store-quickstart.yaml
. Este arquivo foi baixado no código-fonte do aplicativo do Tutorial 1 - Preparar aplicativo para AKS.
Este tutorial requer a CLI do Azure versão 2.0.53 ou posterior. Verifique a sua versão com az --version
. Para instalar ou atualizar, consulte Instalar a CLI do Azure.
Atualizar o ficheiro de manifesto
Nestes tutoriais, sua instância do Azure Container Registry (ACR) armazena as imagens de contêiner para o aplicativo de exemplo. Para implantar o aplicativo, você deve atualizar os nomes das imagens no arquivo de manifesto do Kubernetes para incluir o nome do servidor de login do ACR.
Obtenha o endereço do seu servidor de login usando o
az acr list
comando e consulte o seu servidor de login.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
image
propriedade dos contêineres substituindo-ghcr.io/azure-samples pelo nome do servidor de login 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 ...
Guarde e feche o ficheiro.
Executar a aplicação
Implante o aplicativo usando o
kubectl apply
comando, que analisa o arquivo de manifesto e cria os objetos Kubernetes definidos.kubectl apply -f aks-store-quickstart.yaml
O exemplo de saída 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 visualizando os pods com o
kubectl get pods
comando.kubectl get pods
Testar a aplicação
Quando o aplicativo é executado, um serviço Kubernetes expõe o front-end do aplicativo à Internet. Este processo pode demorar alguns minutos a concluir.
Linha de Comandos
Monitore o progresso usando o
kubectl get service
comando com o--watch
argumento.kubectl get service store-front --watch
Inicialmente, o
EXTERNAL-IP
para ostore-front
serviço mostra como<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quando o
EXTERNAL-IP
endereço mudar de um endereço IP público, useCTRL-C
para interromper okubectl
processo de<pending>
monitoramento.A saída de exemplo a seguir 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
Veja o aplicativo em ação abrindo um navegador da Web e navegando até o endereço IP externo do seu serviço:
http://<external-ip>
.
Se o aplicativo não carregar, pode ser um problema de autorização com seu registro de imagem. Para ver o estado dos seus contentores, utilize o comando kubectl get pods
. Se não for possível extrair as imagens de contêiner, consulte Autenticar com o Registro de Contêiner do Azure do Serviço 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 cluster AKS.
No menu de serviços, em Recursos do Kubernetes, selecione Serviços e ingressos.
Copie o IP externo mostrado na coluna do
store-front
serviço.Cole o IP no seu navegador para visitar a página da sua loja.
Clean up resources (Limpar recursos)
Como você validou a funcionalidade do aplicativo, agora pode remover o cluster do aplicativo. Implantaremos o aplicativo novamente no próximo tutorial.
Pare e remova as instâncias e os recursos do contêiner usando o
kubectl delete
comando.kubectl delete -f aks-store-quickstart.yaml
Verifique se todos os pods do aplicativo foram removidos usando o
kubectl get pods
comando.kubectl get pods
Próximos passos
Neste tutorial, você implantou um aplicativo de exemplo do Azure em um cluster Kubernetes no AKS. Aprendeu a:
- Atualize um arquivo de manifesto do Kubernetes.
- Execute um aplicativo no Kubernetes.
- Testar a aplicação.
No próximo tutorial, você aprenderá a usar serviços PaaS para cargas de trabalho com monitoração de estado no Kubernetes.
Azure Kubernetes Service