Tutorial: Executar aplicações no Serviço Azure Kubernetes em Azure Stack HCI

O Kubernetes dispõe de uma plataforma distribuída para aplicações em contentores. Cria e implementa as suas próprias aplicações e serviços num cluster do Kubernetes, e permite que o cluster gira a disponibilidade e a conectividade. Neste tutorial, parte quatro de sete, a aplicação de exemplo é implementada num cluster do Kubernetes. Saiba como:

  • Atualizar um ficheiro manifesto de Kubernetes
  • Executar uma aplicação no Kubernetes
  • Testar a aplicação

Em tutoriais posteriores, esta aplicação é dimensionada e atualizada.

Este guia de introdução parte do princípio de que possui conhecimentos básicos dos conceitos do Kubernetes.

Antes de começar

Nos tutoriais anteriores, foi compactada uma aplicação numa imagem de contentor, a imagem foi carregada para o Azure Container Registry e foi criado um cluster de Kubernetes.

Para concluir este tutorial, precisa do ficheiro de manifesto previamente criado do Kubernetes azure-vote-all-in-one-redis.yaml. Este ficheiro foi transferido com o código de origem da aplicação num tutorial anterior. Verifique se clonou o repo, e que mudou os diretórios para o repo clonado. Se ainda não fez estes passos, e gostaria de seguir, comece com [Tutorial 1 – Criar imagens de contentores][aks-tutorial-prepare-application.md].

Este tutorial requer que esteja a executar a versão 2.0.53 ou mais tarde do Azure CLI. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Atualizar o ficheiro de manifesto

Nestes tutoriais, uma instância do Azure Container Registry (ACR) armazena a imagem de contentor no exemplo de aplicação. Para implementar a aplicação, tem de atualizar o nome da imagem no ficheiro de manifesto do Kubernetes para incluir o nome de servidor de início de sessão do ACR.

Obtenha o nome do servidor de início de sessão ACR com o comando az acr list, da seguinte forma:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

O ficheiro de manifesto de exemplo do repositório git clonado no primeiro tutorial utiliza o nome do servidor de início de sessão da microsoft. Certifique-se de que está no diretório clonado azure-vote-app-redis, e depois abra o ficheiro manifesto com um editor de texto, tais como:

notepad azure-vote-all-in-one-redis.yaml

Substitua microsoft pelo seu nome de servidor de início de sessão do ACR. O nome da imagem é encontrado na linha 60 do ficheiro manifesto. O seguinte exemplo mostra o nome da imagem predefinida:

containers:
- name: azure-vote-front
  image: mcr.microsoft.com/azuredocs/azure-vote-front:v1

Indique o seu próprio nome de servidor de início de sessão do ACR para que o ficheiro de manifesto seja semelhante ao seguinte exemplo:

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

Guarde e feche o ficheiro.

Implementar a aplicação

Para implementar a sua aplicação, utilize o comando kubectl apply. Este comando analisa o ficheiro de manifesto e cria os objetos de Kubernetes definidos. Especifique o ficheiro de manifesto de exemplo, conforme mostrado no exemplo a seguir:

kubectl apply -f azure-vote-all-in-one-redis.yaml

A saída de exemplo a seguir mostra os recursos criados com sucesso no cluster HCI AKS on Azure Stack:

$ kubectl apply -f azure-vote-all-in-one-redis.yaml

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Testar a aplicação

Quando a aplicação é executado, um serviço Kubernetes expõe a linha frontal da aplicação para a internet. Este processo pode demorar alguns minutos a concluir.

Para monitorizar o progresso, utilize o comando kubectl get service com o argumento .

kubectl get service azure-vote-front --watch

Inicialmente, o IP EXTERNO para o serviço de frente de voto azul é apresentado como pendente:

azure-vote-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s

Quando o endereço EXTERNAL-IP mudar de pendente para um endereço IP público real, utilize para parar o processo do relógio. A saída de exemplo a seguir mostra um endereço IP público válido atribuído ao serviço:

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

Para ver a aplicação em ação, abra um navegador web para o endereço IP externo do seu serviço:

Screenshot mostrando a imagem do recipiente Azure Vote App em execução em um cluster AKS aberto em um navegador web local

Se o pedido não foi carregado, pode ser devido a um problema de autorização com o seu registo de imagem. Para ver o estado dos seus contentores, utilize o comando kubectl get pods. Se as imagens do contentor não puderem ser retiradas, consulte autenticar com registo de contentores Azure do Serviço Azure Kubernetes.

Passos seguintes

Neste tutorial, uma amostra Azure vote application foi implantada para um cluster Kubernetes em AKS em Azure Stack HCI. Aprendeu a:

  • Atualizar ficheiros de manifesto Kubernetes
  • Executar uma aplicação no Kubernetes
  • Testar a aplicação

Avance para o próximo tutorial para saber como dimensionar uma aplicação Kubernetes e a infraestrutura de Kubernetes subjacente.