Tutorial: Atualizar um aplicativo no AKS habilitado pelo Azure Arc

Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server

Depois de implantar um aplicativo no Kubernetes usando o AKS habilitado pelo Arc, você pode atualizá-lo especificando uma nova imagem de contêiner ou versão de imagem. Você deve preparar uma atualização para que apenas uma parte da implantação seja atualizada ao mesmo tempo. Essa atualização em etapas permite que o aplicativo continue em execução durante a atualização. Ela também oferece um mecanismo de reversão, caso ocorra uma falha de implantação.

Este tutorial, parte seis de sete, descreve como atualizar o aplicativo de exemplo do Azure Vote. Você saberá como:

  • Atualizar o código do aplicativo front-end
  • Criar uma imagem de contêiner atualizada
  • Efetuar push da imagem de contêiner para o Registro de Contêiner do Azure
  • Implantar a imagem de contêiner atualizada

Antes de começar

Nos tutoriais anteriores, você aprendeu a:

  • Empacote um aplicativo em uma imagem de contêiner e carregue a imagem para Registro de Contêiner do Azure.
  • Crie um cluster do Kubernetes no Azure Stack HCI e implante o aplicativo no cluster.
  • Clone um repositório de aplicativos que inclua o código-fonte do aplicativo e um arquivo docker compose pré-criado que você pode usar neste tutorial.

Verifique se você criou um clone do repositório e alterou os diretórios para o diretório clonado. Se você ainda não concluiu essas etapas, comece com o Tutorial 1 – Criar imagens de contêiner.

Este tutorial exige que você execute a CLI do Azure versão 2.0.53 ou posterior. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Atualizar um aplicativo

Esta seção descreve como fazer uma alteração no aplicativo de exemplo e, em seguida, atualizar a versão já implantada no cluster do AKS. Verifique se você está no diretório azure-voting-app-redis clonado. O código-fonte do aplicativo de exemplo pode então ser encontrado no diretório azure-vote. Abra o arquivo config_file.cfg com um editor, como o Bloco de Notas:

notepad azure-vote/azure-vote/config_file.cfg

Altere os valores de e VOTE2VALUE para VOTE1VALUE valores diferentes, como cores. O seguinte exemplo mostra os valores atualizados:

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

Salve e feche o arquivo.

Atualizar a imagem do contêiner

Para recriar a imagem de front-end e testar o aplicativo atualizado, use docker-compose. O --build argumento é usado para recriar a imagem do aplicativo:

docker-compose up --build -d

Testar o aplicativo localmente

Para verificar que a atualização imagem de contêiner atualizada mostra as alterações, abra um navegador da Web local para http://localhost:8080.

Captura de tela que mostra um exemplo da imagem de contêiner atualizada do Aplicativo de Votação do Azure em execução local aberto em um navegador da Web local

Os valores atualizados fornecidos em config_file.cfg são exibidos em seu aplicativo em execução.

Marcar e enviar imagem por push

Para usar corretamente a imagem atualizada, marque a imagem azure-vote-front com o nome do servidor de logon da instância Registro de Contêiner do Azure. Obter o nome do servidor de logon com o comando az acr list:

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

Utilize a docker tag para marcar a imagem. Substitua pelo <acrLoginServer> nome do servidor de logon do registro de contêiner ou pelo nome do host do registro público e atualize a versão da imagem para v2, da seguinte maneira:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

Agora use docker push para fazer upload da imagem no registro. Substitua <acrLoginServer> pelo nome do servidor de logon do Registro de Contêiner do Azure.

Observação

Se você tiver problemas ao enviar por push para o registro de contêiner, verifique se você ainda está conectado. Execute o comando az acr login usando o nome do Registro de Contêiner do Azure criado na etapa Criar um Registro de Contêiner do Azure. Por exemplo, az acr login --name <azure container registry name>.

docker push <acrLoginServer>/azure-vote-front:v2

Implantar o aplicativo atualizado

Para fornecer tempo de atividade máximo, você deve executar várias instâncias do pod do aplicativo. Verifique o número de instâncias de front-end em execução com o comando kubectl get pods:

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

Caso não tenha vários pods de front-end, dimensione a implantação do azure-vote-front da seguinte maneira:

kubectl scale --replicas=3 deployment/azure-vote-front

Para atualizar o aplicativo, utilize o comando kubectl set. Atualize <acrLoginServer> com o servidor de logon ou com o nome do host do registro de contêiner e especifique a versão do aplicativo v2:

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

Para monitorar a implantação, use o comando kubectl get pod. À medida que o aplicativo atualizado é implantado, seus pods são encerrados e recriados com a nova imagem de contêiner:

kubectl get pods

A saída de exemplo a seguir mostra os pods de finalização e as novas instâncias em execução conforme o andamento da implantação:

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

Testar o aplicativo atualizado

Para exibir o aplicativo de atualização, primeiro obtenha o endereço IP externo do serviço azure-vote-front:

kubectl get service azure-vote-front

Em seguida, abra um navegador da Web para o endereço IP do serviço:

Captura de tela mostrando um exemplo da imagem atualizada do Aplicativo de Votação do Azure em execução em um cluster do Kubernetes aberto em um navegador da Web local.

Próximas etapas

Neste tutorial, você atualizou um aplicativo e distribuiu essa atualização para o cluster do Kubernetes. Você aprendeu a:

  • Atualizar o código do aplicativo front-end
  • Criar uma imagem de contêiner atualizada
  • Efetuar push da imagem de contêiner para o Registro de Contêiner do Azure
  • Implantar a imagem de contêiner atualizada

Avance para o próximo tutorial para saber como atualizar um cluster para uma nova versão do Kubernetes.