Aggiornare un'applicazione in KubernetesUpdate an application in Kubernetes

Avviso

Si sta visualizzando la documentazione per la versione precedente del servizio contenitore di Azure.You are viewing documentation for the old version of the Azure Container Service. Il servizio contenitore di Azure è in fase di aggiornamento con l'aggiunta di nuove opzioni di distribuzione, funzionalità di gestione migliorate e vantaggi economici in Kubernetes in Azure.Azure Container Service (AKS) is being updated to add new deployment options, enhanced management capabilities, and cost benefit to Kubernetes on Azure. Per iniziare a usare tali funzionalità in anteprima, vedere AKS documentation (Documentazione del servizio contenitore di Azure).Visit the AKS documentation to start working with these preview features.

Dopo la distribuzione di un'applicazione in Kubernetes, è possibile aggiornarla specificando una nuova immagine del contenitore o una nuova versione dell'immagine.After an application has been deployed in Kubernetes, it can be updated by specifying a new container image or image version. A questo scopo, l'aggiornamento viene eseguito a fasi in modo che solo una parte della distribuzione venga aggiornata contemporaneamente.When doing so, the update is staged so that only a portion of the deployment is concurrently updated. Questo aggiornamento a fasi consente all'applicazione di rimanere in esecuzione durante l'aggiornamento.This staged update enables the application to keep running during the update. Fornisce inoltre un meccanismo di ripristino dello stato precedente se si verifica un errore di distribuzione.It also provides a rollback mechanism if a deployment failure occurs.

In questa esercitazione, parte sei di sette, viene aggiornata l'app Azure Vote di esempio.In this tutorial, part six of seven, the sample Azure Vote app is updated. Le attività da completare comprendono:Tasks that you complete include:

  • Aggiornamento del codice dell'applicazione front-endUpdating the front-end application code
  • Creazione di un'immagine del contenitore aggiornataCreating an updated container image
  • Push dell'immagine del contenitore in Registro contenitori di AzurePushing the container image to Azure Container Registry
  • Distribuzione di un'immagine del contenitore aggiornataDeploying the updated container image

Nelle esercitazioni successive, Operations Management Suite verrà configurato per monitorare il cluster Kubernetes.In subsequent tutorials, Operations Management Suite is configured to monitor the Kubernetes cluster.

Prima di iniziareBefore you begin

Nelle esercitazioni precedenti è stato creato un pacchetto di un'applicazione in un'immagine del contenitore, caricata poi in Registro contenitori di Azure, ed è stato creato un cluster Kubernetes.In previous tutorials, an application was packaged into a container image, the image uploaded to Azure Container Registry, and a Kubernetes cluster created. L'applicazione è stata quindi eseguita nel cluster Kubernetes.The application was then run on the Kubernetes cluster.

È stato clonato anche un repository di applicazione che include il codice sorgente dell'applicazione e un file Docker Compose creato in precedenza usato in questa esercitazione.An application repository was also cloned which includes the application source code, and a pre-created Docker Compose file used in this tutorial. Verificare che sia stato creato un clone del repository e che si abbia cambiato le directory nella directory clonata.Verify that you have created a clone of the repo, and that you have changed directories into the cloned directory. All'interno si trova una directory denominata azure-vote e un file denominato docker-compose.yml.Inside is a directory named azure-vote and a file named docker-compose.yml.

Se questi passaggi non sono stati ancora eseguiti e si vuole procedere, tornare a Esercitazione 1 - Creare immagini del contenitore.If you haven't completed these steps, and want to follow along, return to Tutorial 1 – Create container images.

Aggiornare l'applicazioneUpdate application

Per questa esercitazione, viene apportata una modifica all'applicazione e l'applicazione aggiornata viene distribuita nel cluster Kubernetes.For this tutorial, a change is made to the application, and the updated application deployed to the Kubernetes cluster.

Il codice sorgente dell'applicazione è disponibile nella directory azure-vote.The application source code can be found inside of the azure-vote directory. Aprire il file config_file.cfg con qualsiasi editor di testo o codice.Open the config_file.cfg file with any code or text editor. In questo esempio viene usato vi .In this example vi is used.

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

Cambiare i valori per VOTE1VALUE e VOTE2VALUE, quindi salvare il file.Change the values for VOTE1VALUE and VOTE2VALUE, and then save the file.

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

Salvare e chiudere il file.Save and close the file.

Aggiornare l'immagine del contenitoreUpdate container image

Usare docker-compose per ricreare l'immagine front-end ed eseguire l'applicazione aggiornata.Use docker-compose to re-create the front-end image and run the updated application. L'argomento --build viene usato per indicare a Docker Compose di ricreare l'immagine dell'applicazione.The --build argument is used to instruct Docker Compose to re-create the application image.

docker-compose up --build -d

Testare l'applicazione in localeTest application locally

Passare a http://localhost:8080 per vedere l'applicazione aggiornata.Browse to http://localhost:8080 to see the updated application.

Immagine del cluster Kubernetes in Azure

Applicare tag ed eseguire il push delle immaginiTag and push images

Applicare il tag loginServer del registro contenitori all'immagine azure-vote-front.Tag the azure-vote-front image with the loginServer of the container registry.

Ottenere il nome del server di accesso con il 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

Usare docker tag per assegnare il tag all'immagine.Use docker tag to tag the image. Sostituire <acrLoginServer> con il nome di accesso del server del Registro contenitori di Azure o un nome host di un registro pubblico.Replace <acrLoginServer> with your Azure Container Registry login server name or public registry hostname. Si noti anche che la versione dell'immagine viene aggiornata a redis-v2.Also notice that the image version is updated to redis-v2.

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

Usare docker push per caricare l'immagine nel registro.Use docker push to upload the image to your registry. Sostituire <acrLoginServer> con il nome del server di accesso del Registro contenitori di Azure.Replace <acrLoginServer> with your Azure Container Registry login server name.

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

Distribuire l'aggiornamento dell'applicazioneDeploy update application

Per garantire il tempo di attività massimo, è necessario eseguire più istanze del pod dell'applicazione.To ensure maximum uptime, multiple instances of the application pod must be running. Verificare questa configurazione con il comando kubectl get pod.Verify this configuration with the kubectl get pod command.

kubectl get pod

Output:Output:

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 non si dispone di più pod che eseguono l'immagine azure-vote-front, ridimensionare la distribuzione di azure-vote-front.If you do not have multiple pods running the azure-vote-front image, scale the azure-vote-front deployment.

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

Per aggiornare l'applicazione, usare il comando kubectl set.To update the application, use the kubectl set command. Aggiornare <acrLoginServer> con il server di accesso o il nome host del registro contenitori.Update <acrLoginServer> with the login server or host name of your container registry.

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

Per monitorare la distribuzione, utilizzare il comando kubectl get pod.To monitor the deployment, use the kubectl get pod command. Quando l'applicazione aggiornata viene distribuita, le unità vengono terminate e ricreate con la nuova immagine del contenitore.As the updated application is deployed, your pods are terminated and re-created with the new container image.

kubectl get pod

Output:Output:

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

Testare l'applicazione aggiornataTest updated application

Ottenere l'indirizzo IP esterno del servizio azure-vote-front.Get the external IP address of the azure-vote-front service.

kubectl get service azure-vote-front

Passare all'indirizzo IP per vedere l'applicazione aggiornata.Browse to the IP address to see the updated application.

Immagine del cluster Kubernetes in Azure

Passaggi successiviNext steps

In questa esercitazione è stata aggiornata un'applicazione e l'aggiornamento è stato distribuito in un cluster Kubernetes.In this tutorial, you updated an application and rolled out this update to a Kubernetes cluster. Sono state completate le attività seguenti:The following tasks were completed:

  • Aggiornamento del codice dell'applicazione front-endUpdated the front-end application code
  • Creazione di un'immagine del contenitore aggiornataCreated an updated container image
  • Push dell'immagine del contenitore in Registro contenitori di AzurePushed the container image to Azure Container Registry
  • Distribuzione dell'applicazione aggiornataDeployed the updated application

Passare alla prossima esercitazione per apprendere come monitorare Kubernetes con Operations Management Suite.Advance to the next tutorial to learn about how to monitor Kubernetes with Operations Management Suite.