Tutorial: Aktualisieren einer Anwendung in AKS, die von Azure Arc aktiviert ist

Gilt für: AKS in Azure Stack HCI 22H2, AKS unter Windows Server

Nachdem Sie eine Anwendung in Kubernetes mithilfe von AKS bereitgestellt haben, die von Arc aktiviert ist, 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 in Azure Stack HCI, 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.

Für dieses Tutorial muss Die Azure CLI-Version 2.0.53 oder höher ausgeführt werden. 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

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 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.

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.

Screenshot: Beispiel der lokal ausgeführten aktualisierten Azure-Abstimmungs-App mit Containerimage, geöffnet in einem lokalen Webbrowser

Die in config_file.cfg bereitgestellten aktualisierten Werte 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 instance. 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 Anmeldeservers für die Containerregistrierung 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 weiterhin 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. Während 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:

Screenshot: Beispiel für das aktualisierte Image Azure Voting App, das in einem Kubernetes-Cluster ausgeführt wird, der in einem lokalen Webbrowser geöffnet wurde.

Nächste Schritte

In diesem Tutorial haben Sie eine Anwendung aktualisiert und dieses Update für 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

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie ein Upgrade eines Clusters auf eine neue Version von Kubernetes durchführen.