Freigeben über


(VERALTET) Aktualisieren einer Anwendung in Kubernetes

Tipp

Die aktualisierte Version dieses Lernprogramms, das Azure Kubernetes Service verwendet, finden Sie unter Tutorial: Aktualisieren einer Anwendung in Azure Kubernetes Service (AKS).

Warnung

Azure Container Service (ACS) wird ausgemustert. Für ACS werden keine neuen Features oder Funktionen mehr hinzugefügt. Sämtliche APIs, Portalfunktionen, CLI-Befehle und Dokumentationen werden als veraltet gekennzeichnet.

2017 wurde Azure Kubernetes Service (AKS) eingeführt, um die Verwaltung, die Bereitstellung und den Betrieb von Kubernetes zu vereinfachen. Falls Sie den Kubernetes-Orchestrator verwenden, migrieren Sie bitte bis spätestens 31. Januar 2020 zu Azure Kubernetes Service. Informationen zu den ersten Schritten finden Sie unter Migration von Azure Container Service (ACS) zu Azure Kubernetes Service (AKS).

Weitere Informationen finden Sie unter Einstellung von Azure Container Service am 31. Januar 2020.

Nach der Bereitstellung einer Anwendung in Kubernetes kann diese durch Angeben eines neuen Containerimages oder einer neuen Imageversion aktualisiert werden. Dabei wird das Update gestaffelt bereitgestellt, sodass jeweils nur ein Teil der Bereitstellung aktualisiert wird. Durch diese Art des Updates kann die Anwendung während des Updates weiterhin ausgeführt werden. Darüber hinaus wird ein Rollbackmechanismus bereitgestellt, falls ein Fehler bei der Bereitstellung auftritt.

In diesem Tutorial – Teil 6 von 7 – wird die Azure Voting-Beispiel-App aktualisiert. Sie führen folgende Aufgaben aus:

  • Aktualisieren des Front-End-Anwendungscodes
  • Erstellen eines aktualisierten Containerimages
  • Übertragen des Containerimages in Azure Container Registry per Push
  • Bereitstellen des aktualisierten Containerimages

In nachfolgenden Tutorials wird Log Analytics für die Überwachung des Kubernetes-Clusters konfiguriert.

Voraussetzungen

In vorherigen Tutorials wurde eine Anwendung in ein Containerimage gepackt, das Image wurde in Azure Container Registry hochgeladen, und es wurde ein Kubernetes-Cluster erstellt. Anschließend wurde die Anwendung im Kubernetes-Cluster ausgeführt.

Zudem wurde ein Anwendungsrepository geklont, das den Anwendungsquellcode und eine vorab erstellte Docker Compose-Datei enthält, die in diesem Tutorial verwendet wird. Stellen Sie sicher, dass Sie einen Klon des Repositorys erstellt und in das geklonte Verzeichnis gewechselt haben. Darin befindet sich ein Verzeichnis mit dem Namen azure-vote und eine Datei mit dem Namen docker-compose.yml.

Wenn Sie diese Schritte nicht ausgeführt haben und dies jetzt nachholen möchten, kehren Sie zum Tutorial 1 – Erstellen von Containerimages zurück.

Aktualisieren der Anwendung

Im Rahmen dieses Tutorials wird eine Änderung an der Anwendung vorgenommen, und die aktualisierte Anwendung wird im Kubernetes-Cluster bereitgestellt.

Der Quellcode der Anwendung befindet sich im azure-vote-Verzeichnis. Öffnen Sie die Datei config_file.cfg mit einem Code-Editor oder Text-Editor. In diesem Beispiel wird vi verwendet.

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

Ändern Sie die Werte für VOTE1VALUE und VOTE2VALUE, und speichern Sie dann die Datei.

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

Speichern und schließen Sie die Datei.

Aktualisieren des Containerimages

Verwenden Sie docker-compose, um das Front-End-Image neu zu erstellen und die aktualisierte Anwendung auszuführen. Mit dem --build-Argument wird Docker Compose angewiesen, das Anwendungsimage neu zu erstellen.

docker-compose up --build -d

Lokales Testen der Anwendung

Wechseln Sie zu https://localhost:8080, um die aktualisierte Anwendung anzuzeigen.

Image of Kubernetes cluster on Azure

Kennzeichnen und Übertragen von Images per Push

Kennzeichnen Sie das Image azure-vote-front mit dem loginServer-Namen der Containerregistrierung.

Rufen Sie den Anmeldeservernamen mit dem Befehl az acr list ab.

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

Verwenden Sie docker tag, um das Image zu kennzeichnen. Ersetzen Sie <acrLoginServer> durch den Namen des Azure Container Registry-Anmeldeservers oder den Hostnamen der öffentlichen Registrierung. Beachten Sie außerdem, dass die Imageversion auf redis-v2 aktualisiert wird.

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

Verwenden Sie docker push, um das Image in Ihre Registrierung hochzuladen. Ersetzen Sie <acrLoginServer> durch den Namen des Azure Container Registry-Anmeldeservers.

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

Bereitstellen der aktualisierten Anwendung

Zur Gewährleistung der maximalen Betriebszeit müssen mehrere Instanzen des Anwendungs-Pods ausgeführt werden. Überprüfen Sie diese Konfiguration mit dem Befehl kubectl get pod.

kubectl get pod

Ausgabe:

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

Wenn das Image „azure-vote-front“ nicht auf mehreren Pods ausgeführt wird, skalieren Sie die Bereitstellung von azure-vote-front.

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

Um die Anwendung zu aktualisieren, verwenden Sie den Befehl kubectl set. Aktualisieren Sie <acrLoginServer> mit dem Anmeldeserver oder dem Hostnamen der Containerregistrierung.

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

Verwenden Sie zum Überwachen der Bereitstellung den Befehl kubectl get pod. Nach Bereitstellung der aktualisierten Anwendung werden die Pods beendet und mit dem neuen Containerimage neu erstellt.

kubectl get pod

Ausgabe:

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 Anwendung

Rufen Sie die externe IP-Adresse des Diensts azure-vote-front ab.

kubectl get service azure-vote-front

Wechseln Sie zu der IP-Adresse, um die aktualisierte Anwendung anzuzeigen.

Image of Kubernetes cluster on Azure

Nächste Schritte

In diesem Tutorial haben Sie eine Anwendung aktualisiert und diese Aktualisierung in einem Kubernetes-Cluster bereitgestellt. Die folgenden Aufgaben wurden ausgeführt:

  • Aktualisieren des Front-End-Anwendungscodes
  • Erstellen eines aktualisierten Containerimages
  • Übertragen des Containerimages in Azure Container Registry per Push
  • Bereitstellen der aktualisierten Anwendung

Im nächsten Tutorial erfahren Sie, wie Sie Kubernetes mit Log Analytics überwachen.