Tutorial: Aktualisieren einer Anwendung 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. Ein Update wird bereitgestellt, damit 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. Folgendes wird vermittelt:
- Aktualisieren des Front-End-Anwendungscodes
- Erstellen eines aktualisierten Containerimages
- Pushübertragung des Containerimages an Azure Container Registry
- Bereitstellen des aktualisierten Containerimages
Voraussetzungen
In den vorherigen Tutorials wurde eine Anwendung als Containerimage verpackt. Dieses Image wurde in Azure Container Registry hochgeladen, und Sie haben einen AKS-Cluster erstellt. Die Anwendung wurde dann für den AKS-Cluster bereitgestellt.
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 haben und in das geklonte Verzeichnis gewechselt sind. Wenn Sie diese Schritte nicht ausgeführt haben und dies jetzt nachholen möchten, beginnen Sie mit Tutorial 1: Erstellen von Containerimages.
Für dieses Tutorial müssen Sie mindestens Version 2.0.53 der Azure CLI ausführen. Führen Sie az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI.
Aktualisieren einer Anwendung
Wir nehmen eine Änderung an der Beispielanwendung vor und aktualisieren dann die bereits in Ihrem AKS-Cluster bereitgestellte Version. Stellen Sie sicher, dass Sie sich im geklonten Verzeichnis azure-voting-app-redis befinden. Der Quellcode der Beispielanwendung befindet sich dann im Verzeichnis azure-vote. Öffnen Sie die config_file.cfg mit einem Editor wie z.B. vi
:
vi azure-vote/azure-vote/config_file.cfg
Ändern Sie die Werte für VOTE1VALUE und VOTE2VALUE in andere Werte, z.B. Farben. Das folgende Beispiel zeigt die aktualisierten Werte:
# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'
Speichern und schließen Sie die Datei. Verwenden Sie in vi
den Befehl :wq
.
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
Öffnen Sie http://localhost:8080
in einem lokalen Webbrowser, um sicherzustellen, dass das aktualisierte Containerimage Ihre Änderungen anzeigt.
Die in der Datei config_file.cfg angegebenen aktualisierten Werte werden in Ihrer ausgeführten Anwendung angezeigt.
Markieren und Pushen des Images
Markieren Sie das Image azure-vote-front mit dem Anmeldeservernamen Ihrer ACR-Registrierung, um das aktualisierte Image richtig zu verwenden. 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 Ihren ACR-Anmeldeservernamen oder dem Hostnamen der öffentlichen Registrierung, und aktualisieren Sie die Imageversion folgendermaßen auf :v2:
docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2
Verwenden Sie nun docker push, um das Image in Ihre Registrierung hochzuladen. Ersetzen Sie <acrLoginServer>
durch Ihren ACR-Anmeldeservernamen.
Hinweis
Falls bei Pushvorgängen an die ACR-Registrierung Probleme auftreten, sollten Sie sich vergewissern, dass Sie noch angemeldet sind. 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. Beispiel: az acr login --name <azure container registry name>
.
docker push <acrLoginServer>/azure-vote-front:v2
Bereitstellen der aktualisierten Anwendung
Zur Sicherstellung der maximalen Betriebszeit müssen mehrere Instanzen des Anwendungs-Pods ausgeführt werden. Überprüfen Sie mithilfe des Befehls kubectl get pods die Anzahl ausgeführter Front-End-Instanzen:
$ 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:
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 Hostnamen Ihrer Containerregistrierung, und legen Sie die Anwendungsversion v2 fest:
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. Nach Bereitstellung der aktualisierten Anwendung werden die Pods beendet und mit dem neuen Containerimage neu erstellt.
kubectl get pods
Die folgende Beispielausgabe zeigt, wie im Verlauf der Bereitstellung Pods beendet und neue Instanzen ausgeführt werden:
$ 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 Anwendung
Zum Anzeigen der aktualisierten Anwendung rufen Sie zunächst die externe IP-Adresse des azure-vote-front
-Diensts ab:
kubectl get service azure-vote-front
Öffnen Sie jetzt die IP-Adresse Ihres Diensts in einem Webbrowser:
Nächste Schritte
In diesem Tutorial haben Sie eine Anwendung aktualisiert und diese Aktualisierung in Ihrem AKS-Cluster bereitgestellt. Sie haben Folgendes gelernt:
- Aktualisieren des Front-End-Anwendungscodes
- Erstellen eines aktualisierten Containerimages
- Pushübertragung des Containerimages an Azure Container Registry
- Bereitstellen des aktualisierten Containerimages
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.