Lernprogramm: Aktualisieren einer Anwendung in AKS, die von Azure Arc aktiviert ist
Gilt für: AKS auf Azure Stack HCI 22H2, AKS unter Windows Server
Nachdem Sie eine Anwendung in Kubernetes mithilfe von AKS bereitgestellt haben, die von Arc aktiviert sind, können Sie sie aktualisieren, indem Sie ein neues Containerimage oder eine neue Imageversion angeben. Sie sollten ein Update stagen, 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 beschrieben, wie Sie die Azure Vote-Beispiel-App aktualisieren. Sie lernen Folgendes:
- Aktualisieren des Front-End-Anwendungscodes
- Erstellen eines aktualisierten Containerimages
- Pushübertragung des Containerimages an Azure Container Registry
- Bereitstellen des aktualisierten Containerimages
Voraussetzungen
In früheren Tutorials haben Sie Folgendes gelernt:
- Packen einer Anwendung in ein Containerimage und Hochladen des Images in Azure Container Registry
- Erstellen Sie einen Kubernetes-Cluster auf Azure Local, und stellen Sie die Anwendung im Cluster bereit.
- Klonen eines Anwendungsrepositorys, das den Anwendungsquellcode und eine vorab erstellte Docker Compose-Datei enthält, die in diesem Tutorial verwendet werden kann
Vergewissern Sie sich, dass Sie einen Klon des Repositorys erstellt und Verzeichnisse in das geklonte Verzeichnis geändert haben. Wenn Sie diese Schritte nicht ausgeführt haben, beginnen Sie mit Tutorial 1: Erstellen von Containerimages.
Dieses Lernprogramm erfordert, dass Sie Azure CLI, Version 2.0.53 oder höher, ausführen. Führen Sie az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
Aktualisieren einer Anwendung
In diesem Abschnitt wird beschrieben, wie Sie eine Änderung an der Beispielanwendung vornehmen und dann die version aktualisieren, die bereits in Ihrem AKS-Cluster bereitgestellt wurde. 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 Datei config_file.cfg mit einem Editor, z. B. Editor:
notepad azure-vote/azure-vote/config_file.cfg
Ändern Sie die Werte für VOTE1VALUE
und VOTE2VALUE
in unterschiedliche 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.
Aktualisieren des Containerimages
Verwenden Sie docker-compose, um das Front-End-Image neu zu erstellen und die aktualisierte Anwendung auszuführen. Das --build
Argument wird verwendet, um 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 aktualisierten Werte in config_file.cfg werden in Ihrer ausgeführten Anwendung angezeigt.
Markieren und Pushen des Images
Um das aktualisierte Image ordnungsgemäß zu verwenden, markieren Sie das Azure-Vote-Front-Image mit dem Anmeldeservernamen Ihrer Azure Container Registry-Instanz. 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>
den Namen des Containerregistrierungs-Anmeldeservers oder den Hostnamen der öffentlichen Registrierung, und aktualisieren Sie die Imageversion wie folgt 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 den Namen des Azure Container Registry-Anmeldeservers.
Hinweis
Wenn Probleme beim Pushen an Ihre Containerregistrierung auftreten, stellen Sie sicher, 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 Anwendungspods 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. Wenn die aktualisierte Anwendung bereitgestellt wird, werden Ihre 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 als Nächstes die IP-Adresse Ihres Diensts in einem Webbrowser:
Nächste Schritte
In diesem Lernprogramm haben Sie eine Anwendung aktualisiert und dieses Update auf Ihren Kubernetes-Cluster eingeführt. 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
Wechseln Sie zum nächsten Lernprogramm, um zu erfahren, wie Sie einen Cluster auf eine neue Version von Kubernetes aktualisieren.