Tutorial: Atualizar uma aplicação no Azure Kubernetes Service (AKS)Tutorial: Update an application in Azure Kubernetes Service (AKS)

Depois de a aplicação ser implementada no Kubernetes, pode ser atualizada, ao especificar uma nova imagem de contentor ou uma versão de imagem.After an application has been deployed in Kubernetes, it can be updated by specifying a new container image or image version. Uma atualização é testada, para que apenas uma parte da implantação é atualizada ao mesmo tempo.An update is staged so that only a portion of the deployment is updated at the same time. Esta atualização testada permite que a aplicação continue a ser executada durante a atualização.This staged update enables the application to keep running during the update. Também apresenta um mecanismo de reversão se ocorrer uma falha de implementação.It also provides a rollback mechanism if a deployment failure occurs.

Neste tutorial, parte seis de sete, a aplicação Azure Vote de exemplo é atualizada.In this tutorial, part six of seven, the sample Azure Vote app is updated. Saiba como:You learn how to:

  • Atualizar o código da aplicação de front-endUpdate the front-end application code
  • Criar uma imagem de contentor atualizadaCreate an updated container image
  • Colocar a imagem de contentor no Azure Container RegistryPush the container image to Azure Container Registry
  • Implementar a imagem de contentor atualizadaDeploy the updated container image

Antes de começarBefore you begin

Nos tutoriais anteriores, foi compactada uma aplicação numa imagem de contentor.In previous tutorials, an application was packaged into a container image. A imagem foi carregada para o Azure Container Registry e criado um cluster do AKS.This image was uploaded to Azure Container Registry, and you created an AKS cluster. A aplicação foi implementada, em seguida, para o cluster do AKS.The application was then deployed to the AKS cluster.

Também foi clonado um repositório de aplicações que inclui o código de origem da aplicação e foi utilizado um ficheiro do Docker Compose pré-criado neste tutorial.An application repository was also cloned that includes the application source code, and a pre-created Docker Compose file used in this tutorial. Certifique-se de que criou um clone do repositório e que foram alterados diretórios no diretório clonado.Verify that you've created a clone of the repo, and have changed directories into the cloned directory. Se ainda não concluiu estes passos e pretende acompanhar, inicie com Tutorial 1 – criar imagens de contentor.If you haven't completed these steps, and want to follow along, start with Tutorial 1 – Create container images.

Este tutorial requer que está a executar a CLI do Azure versão 2.0.53 ou posterior.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install Azure CLI.

Atualizar uma aplicaçãoUpdate an application

Vamos fazer uma alteração à aplicação de exemplo e, em seguida, atualizar a versão já implementada no cluster do AKS.Let's make a change to the sample application, then update the version already deployed to your AKS cluster. Certifique-se de que está no clonado azure-Vote-aplicação-redis diretório.Make sure that you're in the cloned azure-voting-app-redis directory. O código de origem do aplicativo de exemplo, em seguida, pode ser encontrado no interior da azure-vote diretório.The sample application source code can then be found inside the azure-vote directory. Abra o ficheiro config_file.cfg com um editor, como o vi:Open the config_file.cfg file with an editor, such as vi:

vi azure-vote/azure-vote/config_file.cfg

Alterar os valores para VOTE1VALUE e VOTE2VALUE para valores diferentes, como cores.Change the values for VOTE1VALUE and VOTE2VALUE to different values, such as colors. O exemplo seguinte mostra os valores atualizados:The following example shows the updated values:

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

Guarde e feche o ficheiro.Save and close the file. Na vi, utilize :wq.In vi, use :wq.

Atualizar a imagem de contentorUpdate the container image

Para voltar a criar a imagem de front-end e testar a aplicação atualizada, utilize docker-compose.To re-create the front-end image and test the updated application, use docker-compose. O argumento --build serve para instruir o Docker Compose para voltar a criar a imagem de aplicação:The --build argument is used to instruct Docker Compose to re-create the application image:

docker-compose up --build -d

Testar a aplicação localmenteTest the application locally

Para verificar se a imagem de contentor atualizada mostra as alterações, abra um browser local em http://localhost:8080.To verify that the updated container image shows your changes, open a local web browser to http://localhost:8080.

Imagem do cluster do Kubernetes no Azure no Azure

Os valores atualizados fornecidos a config_file.cfg arquivo são apresentados na sua aplicação em execução.The updated values provided in the config_file.cfg file are displayed in your running application.

Etiquetar e enviar a imagemTag and push the image

Para utilizar corretamente a imagem atualizada, etiquete a imagem azure-vote-front com o nome do servidor de início de sessão do registo do ACR.To correctly use the updated image, tag the azure-vote-front image with the login server name of your ACR registry. Obtenha o nome do servidor de início de sessão com o comando az acr list:Get the login server name with the az acr list command:

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

Utilize a etiqueta do docker para assinalar a imagem.Use docker tag to tag the image. Substitua <acrLoginServer> pelo nome do servidor de início de sessão do ACR ou pelo nome de anfitrião do registo público e atualize a versão da imagem para :v2 da seguinte forma:Replace <acrLoginServer> with your ACR login server name or public registry hostname, and update the image version to :v2 as follows:

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

Agora, usar push do docker para carregar a imagem para o seu registo.Now use docker push to upload the image to your registry. Substitua <acrLoginServer> pelo nome do servidor de início de sessão do ACR.Replace <acrLoginServer> with your ACR login server name.

Nota

Se ocorrerem problemas ao enviar para o registo do ACR, certifique-se de que continuam a ser registados.If you experience issues pushing to your ACR registry, make sure that you are still logged in. Executar o início de sessão az acr comando usando o nome do seu registo de contentor do Azure que criou no criar um Azure Container Registry passo.Run the az acr login command using the name of your Azure Container Registry that you created in the Create an Azure Container Registry step. Por exemplo, az acr login --name <azure container registry name>.For example, az acr login --name <azure container registry name>.

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

Implementar a aplicação atualizadaDeploy the updated application

Para fornecer o máximo de tempo de atividade, tem de executar várias instâncias do pod da aplicação.To provide maximum uptime, multiple instances of the application pod must be running. Verifique se o número de instâncias de front-end com a executar o kubectl obter pods comando:Verify the number of running front-end instances with the kubectl get pods command:

$ 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, dimensionar o azure-vote-front implementação da seguinte forma:If you don't have multiple front-end pods, scale the azure-vote-front deployment as follows:

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

Para atualizar a aplicação, utilize o comando kubectl set.To update the application, use the kubectl set command. 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:Update <acrLoginServer> with the login server or host name of your container registry, and specify the v2 application version:

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.To monitor the deployment, use the kubectl get pod command. Uma vez que a aplicação atualizada é implementada, os seus pods são terminados e recriados com a nova imagem de contentor.As the updated application is deployed, your pods are terminated and re-created with the new container image.

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:The following example output shows pods terminating and new instances running as the deployment progresses:

$ 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 atualizadaTest the updated application

Para ver a aplicação atualizada, obtenha primeiro o endereço IP externo do serviço azure-vote-front:To view the update application, first get the external IP address of the azure-vote-front service:

kubectl get service azure-vote-front

Agora, abra um navegador da local web para o endereço IP do seu serviço:Now open a local web browser to the IP address of your service:

Imagem do cluster do Kubernetes no Azure no Azure

Passos SeguintesNext steps

Neste tutorial, atualizou uma aplicação e implementa esta atualização para o seu cluster do AKS.In this tutorial, you updated an application and rolled out this update to your AKS cluster. Aprendeu a:You learned how to:

  • Atualizar o código da aplicação de front-endUpdate the front-end application code
  • Criar uma imagem de contentor atualizadaCreate an updated container image
  • Colocar a imagem de contentor no Azure Container RegistryPush the container image to Azure Container Registry
  • Implementar a imagem de contentor atualizadaDeploy the updated container image

Avance para o próximo tutorial para saber como atualizar um cluster do AKS para uma nova versão do Kubernetes.Advance to the next tutorial to learn how to upgrade an AKS cluster to a new version of Kubernetes.