Tutorial: Atualizar uma aplicação no AKS ativada pelo Azure Arc

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

Depois de implementar uma aplicação no Kubernetes com o AKS ativado pelo Arc, pode atualizá-la ao especificar uma nova imagem de contentor ou versão da imagem. Deve testar uma atualização para que apenas uma parte da implementação seja atualizada ao mesmo tempo. Esta atualização testada permite que a aplicação continue a ser executada durante a atualização. Também apresenta um mecanismo de reversão se ocorrer uma falha de implementação.

Este tutorial, parte seis de sete, descreve como atualizar a aplicação Azure Vote de exemplo. Vai aprender a:

  • Atualizar o código da aplicação de front-end
  • Criar uma imagem de contentor atualizada
  • Colocar a imagem de contentor no Azure Container Registry
  • Implementar a imagem de contentor atualizada

Antes de começar

Nos tutoriais anteriores, aprendeu a:

  • Empacote uma aplicação numa imagem de contentor e carregue a imagem para Azure Container Registry.
  • Crie um cluster do Kubernetes no Azure Stack HCI e implemente a aplicação no cluster.
  • Clone um repositório de aplicações que inclua o código fonte da aplicação e um ficheiro docker compose pré-criado que pode utilizar neste tutorial.

Verifique se criou um clone do repositório e alterou os diretórios para o diretório clonado. Se ainda não concluiu estes passos, comece com o Tutorial 1 – Criar imagens de contentor.

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

Atualizar uma aplicação

Esta secção descreve como fazer uma alteração à aplicação de exemplo e, em seguida, atualizar a versão já implementada no cluster do AKS. Certifique-se de que está no diretório azure-voting-app-redis clonado. O código fonte da aplicação de exemplo pode ser encontrado no diretório azure-vote . Abra o ficheiro 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 exemplo seguinte mostra os valores atualizados:

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

Guarde e feche o ficheiro.

Atualizar a imagem de contentor

Para voltar a criar a imagem de front-end e testar a aplicação atualizada, utilize docker-compose. O --build argumento é utilizado para recriar a imagem da aplicação:

docker-compose up --build -d

Testar a aplicação localmente

Para verificar se a imagem de contentor atualizada mostra as alterações, abra um browser local em http://localhost:8080.

Captura de ecrã a mostrar um exemplo da imagem de contentor atualizada da Aplicação de Voto do Azure em execução localmente aberta num browser local

Os valores atualizados fornecidos em config_file.cfg são apresentados na sua aplicação em execução.

Etiquetar e enviar a imagem

Para utilizar corretamente a imagem atualizada, marque a imagem azure-vote-front com o nome do servidor de início de sessão da sua instância de Azure Container Registry. Obtenha o nome do servidor de início de sessão com o comando az acr list :

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

Utilize a etiqueta do docker para etiquetar a imagem. Substitua pelo <acrLoginServer> nome do servidor de início de sessão do registo de contentor ou pelo nome do anfitrião do registo público e atualize a versão da imagem para v2, da seguinte forma:

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

Agora, utilize docker push para carregar a imagem para o registo. Substitua <acrLoginServer> pelo nome do servidor de início de sessão do Azure Container Registry.

Nota

Se tiver problemas ao enviar para o registo de contentor, certifique-se de que ainda tem sessão iniciada. Execute o comando az acr login com o nome da sua Azure Container Registry que criou no passo Criar uma Azure Container Registry. Por exemplo, az acr login --name <azure container registry name>.

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

Implementar a aplicação atualizada

Para fornecer o máximo de tempo de atividade, tem de executar várias instâncias do pod da aplicação. Verifique se 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

Se não tiver vários pods de front-end, dimensione a implementação azure-vote-front da seguinte forma:

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

Para atualizar a aplicação, utilize o comando kubectl set. Atualize <acrLoginServer> com o nome do anfitrião ou do servidor de início de sessão do registo de contentor e especifique a versão da aplicação v2:

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

Para monitorizar a implementação, utilize o comando kubectl get pod. À medida que a aplicação atualizada é implementada, os pods são terminados e recriados com a nova imagem de contentor:

kubectl get pods

O resultado de exemplo seguinte mostra os pods a serem terminados e as novas instâncias em execução à medida que a implementação avança:

$ 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 a aplicação atualizada

Para ver a aplicação atualizada, obtenha primeiro o endereço IP externo do serviço azure-vote-front:

kubectl get service azure-vote-front

Em seguida, abra um browser para o endereço IP do seu serviço:

Captura de ecrã a mostrar um exemplo da imagem atualizada da Aplicação de Voto do Azure em execução num cluster do Kubernetes aberto num browser local.

Passos seguintes

Neste tutorial, atualizou uma aplicação e implementou esta atualização no cluster do Kubernetes. Aprendeu a:

  • Atualizar o código da aplicação de front-end
  • Criar uma imagem de contentor atualizada
  • Colocar a imagem de contentor no Azure Container Registry
  • Implementar a imagem de contentor atualizada

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