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
.
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:
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários