Tutorial: Atualizar um aplicativo no Serviço de Kubernetes do Azure no Azure Stack HCI

Depois que um aplicativo foi implantado no Kubernetes, ele pode ser atualizado especificando uma nova imagem de contêiner ou versão de imagem. Uma atualização é preparada 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.

Neste tutorial, parte seis de sete, o aplicativo de exemplo Azure Vote é atualizado. Você aprenderá 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, um aplicativo foi empacotado em uma imagem de contêiner. Essa imagem foi carregada no Registro de Contêiner do Azure e você criou um AKS Azure Stack HCI cluster. Em seguida, o aplicativo foi implantado no cluster.

Um repositório de aplicativo também foi clonado, que inclui o código-fonte do aplicativo e um arquivo do Docker Compose pré-criado usado neste tutorial. Verifique se você criou um clone do repositório e se alterou os diretórios para o diretório clonado. Se você ainda não concluiu essas etapas e deseja continuar acompanhando, comece com o Tutorial 1 – Criar mensagens de contêiner.

Este tutorial exige a execução da 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

Vamos fazer uma alteração no aplicativo de exemplo e atualizar a versão já implantada no AKS Azure Stack HCI cluster. 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 :

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

Altere os valores de VOTE1VALUE e VOTE2VALUE para 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 argumento --build é usado para instruir o Docker Compose a 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 no arquivo config_file.cfg são exibidos no 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 do registro do ACR. 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 nome do servidor de logon do ACR ou pelo nome do host do registro público e atualize a versão da imagem para <acrLoginServer><acrLoginServer> da seguinte forma:

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 ACR.

Observação

Se você tiver problemas de push para o registro do ACR, 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 o tempo de atividade máximo, várias instâncias do pod de aplicativos precisam estar em execução. 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 o nome do host do registro de contêiner e especifique a versão do aplicativo <acrLoginServer>

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. Conforme o aplicativo atualizado é implantado, os 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

Agora abra um navegador da Web no endereço IP do serviço:

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

Próximas etapas

Neste tutorial, você atualizou um aplicativo e distribuiu essa atualização para um cluster do AKS. 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 do AKS para uma nova versão do Kubernetes.