Tutorial: Aktualisieren einer Anwendung in Azure Kubernetes Service (AKS)Tutorial: Update an application in Azure Kubernetes Service (AKS)

Nach der Bereitstellung einer Anwendung in Kubernetes kann diese durch Angeben eines neuen Containerimages oder einer neuen Imageversion aktualisiert werden.After an application has been deployed in Kubernetes, it can be updated by specifying a new container image or image version. Ein Update wird bereitgestellt, damit jeweils nur ein Teil der Bereitstellung aktualisiert wird.An update is staged so that only a portion of the deployment is updated at the same time. Durch diese Art des Updates kann die Anwendung während des Updates weiterhin ausgeführt werden.This staged update enables the application to keep running during the update. Darüber hinaus wird ein Rollbackmechanismus bereitgestellt, falls ein Fehler bei der Bereitstellung auftritt.It also provides a rollback mechanism if a deployment failure occurs.

In diesem Tutorial – Teil 6 von 7 – wird die Azure Voting-Beispiel-App aktualisiert.In this tutorial, part six of seven, the sample Azure Vote app is updated. Folgendes wird vermittelt:You learn how to:

  • Aktualisieren des Front-End-AnwendungscodesUpdate the front-end application code
  • Erstellen eines aktualisierten ContainerimagesCreate an updated container image
  • Pushübertragung des Containerimages an Azure Container RegistryPush the container image to Azure Container Registry
  • Bereitstellen des aktualisierten ContainerimagesDeploy the updated container image

VoraussetzungenBefore you begin

In den vorherigen Tutorials wurde eine Anwendung als Containerimage verpackt.In previous tutorials, an application was packaged into a container image. Dieses Image wurde in Azure Container Registry hochgeladen, und Sie haben einen AKS-Cluster erstellt.This image was uploaded to Azure Container Registry, and you created an AKS cluster. Die Anwendung wurde dann für den AKS-Cluster bereitgestellt.The application was then deployed to the AKS cluster.

Zudem wurde ein Anwendungsrepository geklont, das den Anwendungsquellcode und eine vorab erstellte Docker Compose-Datei enthält, die in diesem Tutorial verwendet wird.An application repository was also cloned that includes the application source code, and a pre-created Docker Compose file used in this tutorial. Stellen Sie sicher, dass Sie einen Klon des Repositorys erstellt haben und in das geklonte Verzeichnis gewechselt sind.Verify that you've created a clone of the repo, and have changed directories into the cloned directory. Wenn Sie diese Schritte nicht ausgeführt haben und dies jetzt nachholen möchten, beginnen Sie mit Tutorial 1: Erstellen von Containerimages.If you haven't completed these steps, and want to follow along, start with Tutorial 1 – Create container images.

Für dieses Tutorial müssen Sie mindestens Version 2.0.53 der Azure CLI ausführen.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. Führen Sie az --version aus, um die Version zu finden.Run az --version to find the version. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Aktualisieren einer AnwendungUpdate an application

Wir nehmen eine Änderung an der Beispielanwendung vor und aktualisieren dann die bereits in Ihrem AKS-Cluster bereitgestellte Version.Let's make a change to the sample application, then update the version already deployed to your AKS cluster. Stellen Sie sicher, dass Sie sich im geklonten Verzeichnis azure-voting-app-redis befinden.Make sure that you're in the cloned azure-voting-app-redis directory. Der Quellcode der Beispielanwendung befindet sich dann im Verzeichnis azure-vote.The sample application source code can then be found inside the azure-vote directory. Öffnen Sie die config_file.cfg mit einem Editor wie z.B. vi:Open the config_file.cfg file with an editor, such as vi:

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

Ändern Sie die Werte für VOTE1VALUE und VOTE2VALUE in andere Werte, z.B. Farben.Change the values for VOTE1VALUE and VOTE2VALUE to different values, such as colors. Das folgende Beispiel zeigt die aktualisierten Werte:The following example shows the updated values:

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

Speichern und schließen Sie die Datei.Save and close the file. Verwenden Sie in vi den Befehl :wq.In vi, use :wq.

Aktualisieren des ContainerimagesUpdate the container image

Verwenden Sie docker-compose, um das Front-End-Image neu zu erstellen und die aktualisierte Anwendung auszuführen.To re-create the front-end image and test the updated application, use docker-compose. Mit dem --build-Argument wird Docker Compose angewiesen, das Anwendungsimage neu zu erstellen:The --build argument is used to instruct Docker Compose to re-create the application image:

docker-compose up --build -d

Lokales Testen der AnwendungTest the application locally

Öffnen Sie http://localhost:8080 in einem lokalen Webbrowser, um sicherzustellen, dass das aktualisierte Containerimage Ihre Änderungen anzeigt.To verify that the updated container image shows your changes, open a local web browser to http://localhost:8080.

Abbildung: Kubernetes-Cluster in Azure

Die in der Datei config_file.cfg angegebenen aktualisierten Werte werden in Ihrer ausgeführten Anwendung angezeigt.The updated values provided in the config_file.cfg file are displayed in your running application.

Markieren und Pushen des ImagesTag and push the image

Markieren Sie das Image azure-vote-front mit dem Anmeldeservernamen Ihrer ACR-Registrierung, um das aktualisierte Image richtig zu verwenden.To correctly use the updated image, tag the azure-vote-front image with the login server name of your ACR registry. Rufen Sie den Anmeldeservernamen mit dem Befehl az acr list ab:Get the login server name with the az acr list command:

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

Verwenden Sie docker tag, um das Image zu kennzeichnen.Use docker tag to tag the image. Ersetzen Sie <acrLoginServer> durch Ihren ACR-Anmeldeservernamen oder dem Hostnamen der öffentlichen Registrierung, und aktualisieren Sie die Imageversion folgendermaßen auf :v2: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

Verwenden Sie nun docker push, um das Image in Ihre Registrierung hochzuladen.Now use docker push to upload the image to your registry. Ersetzen Sie <acrLoginServer> durch Ihren ACR-Anmeldeservernamen.Replace <acrLoginServer> with your ACR login server name.

Hinweis

Falls bei Pushvorgängen an die ACR-Registrierung Probleme auftreten, sollten Sie sich vergewissern, dass Sie noch angemeldet sind.If you experience issues pushing to your ACR registry, make sure that you are still logged in. Führen Sie den Befehl az acr login unter Verwendung des Namens Ihrer Azure Container Registry-Instanz aus, die Sie im Schritt Erstellen einer Azure-Containerregistrierung erstellt haben.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. Beispiel: 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

Bereitstellen der aktualisierten AnwendungDeploy the updated application

Zur Sicherstellung der maximalen Betriebszeit müssen mehrere Instanzen des Anwendungs-Pods ausgeführt werden.To provide maximum uptime, multiple instances of the application pod must be running. Überprüfen Sie mithilfe des Befehls kubectl get pods die Anzahl ausgeführter Front-End-Instanzen: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

Skalieren Sie die Bereitstellung von azure-vote-front wie folgt, wenn Sie nur einen Front-End-Pod nutzen: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

Um die Anwendung zu aktualisieren, verwenden Sie den Befehl kubectl set.To update the application, use the kubectl set command. Aktualisieren Sie <acrLoginServer> mit dem Anmeldeserver- oder Hostnamen Ihrer Containerregistrierung, und legen Sie die Anwendungsversion v2 fest: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

Verwenden Sie zum Überwachen der Bereitstellung den Befehl kubectl get pod.To monitor the deployment, use the kubectl get pod command. Nach Bereitstellung der aktualisierten Anwendung werden die Pods beendet und mit dem neuen Containerimage neu erstellt.As the updated application is deployed, your pods are terminated and re-created with the new container image.

kubectl get pods

Die folgende Beispielausgabe zeigt, wie im Verlauf der Bereitstellung Pods beendet und neue Instanzen ausgeführt werden: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

Testen der aktualisierten AnwendungTest the updated application

Zum Anzeigen der aktualisierten Anwendung rufen Sie zunächst die externe IP-Adresse des azure-vote-front-Diensts ab:To view the update application, first get the external IP address of the azure-vote-front service:

kubectl get service azure-vote-front

Öffnen Sie jetzt die IP-Adresse Ihres Diensts in einem lokalen Webbrowser:Now open a local web browser to the IP address of your service:

Abbildung: Kubernetes-Cluster in Azure

Nächste SchritteNext steps

In diesem Tutorial haben Sie eine Anwendung aktualisiert und diese Aktualisierung in Ihrem AKS-Cluster bereitgestellt.In this tutorial, you updated an application and rolled out this update to your AKS cluster. Es wurde Folgendes vermittelt:You learned how to:

  • Aktualisieren des Front-End-AnwendungscodesUpdate the front-end application code
  • Erstellen eines aktualisierten ContainerimagesCreate an updated container image
  • Pushübertragung des Containerimages an Azure Container RegistryPush the container image to Azure Container Registry
  • Bereitstellen des aktualisierten ContainerimagesDeploy the updated container image

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie ein Upgrade eines AKS-Clusters auf eine neue Version von Kubernetes durchführen.Advance to the next tutorial to learn how to upgrade an AKS cluster to a new version of Kubernetes.