Condividi tramite


Esercitazione: Aggiornare un'applicazione nel servizio Azure Kubernetes abilitata da Azure Arc

Si applica a: AKS su Azure Locale 22H2, AKS su Windows Server

Dopo aver distribuito un'applicazione in Kubernetes usando il servizio Azure Kubernetes abilitato da Arc, è possibile aggiornarla specificando una nuova versione dell'immagine o dell'immagine del contenitore. È consigliabile preparare un aggiornamento in modo che solo una parte della distribuzione venga aggiornata contemporaneamente. Questo aggiornamento a fasi consente all'applicazione di rimanere in esecuzione durante l'aggiornamento. Fornisce inoltre un meccanismo di ripristino dello stato precedente se si verifica un errore di distribuzione.

Questa esercitazione, parte sei di sette, descrive come aggiornare l'app Azure Vote di esempio. Si apprenderà come:

  • Aggiornare il codice dell'applicazione front-end
  • Creare un'immagine del contenitore aggiornata
  • Eseguire il push dell'immagine del contenitore in Registro Azure Container
  • Distribuire un'immagine del contenitore aggiornata

Operazioni preliminari

Nelle esercitazioni precedenti si è appreso come:

  • Creare il pacchetto di un'applicazione in un'immagine del contenitore e caricare l'immagine in Registro Azure Container.
  • Creare un cluster Kubernetes in Locale di Azure e distribuire l'applicazione nel cluster.
  • Clonare un repository di applicazioni che include il codice sorgente dell'applicazione e un file Docker Compose creato in modo preliminare che è possibile usare in questa esercitazione.

Verificare di aver creato un clone del repository e di aver modificato le directory nella directory clonata. Se questi passaggi non sono stati completati, iniziare con l'esercitazione 1 - Creare immagini del contenitore.

Questa esercitazione richiede l'esecuzione dell'interfaccia della riga di comando di Azure versione 2.0.53 o successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Aggiornare un'applicazione

Questa sezione descrive come apportare una modifica all'applicazione di esempio e quindi aggiornare la versione già distribuita nel cluster del servizio Azure Kubernetes. Assicurarsi di essere nella directory clonata azure-voto-app-redis. Il codice sorgente dell'applicazione di esempio è disponibile nella directory azure-vote. Aprire il file config_file.cfg con un editor, ad esempio Blocco note:

notepad azure-vote/azure-vote/config_file.cfg

Modificare i valori per VOTE1VALUE e VOTE2VALUE in valori diversi, ad esempio i colori. L'esempio seguente illustra i valori aggiornati:

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

Salva e chiudi il file.

Aggiornare l'immagine del contenitore

Per ricreare l'immagine front-end e testare l'applicazione aggiornata, usare docker-compose. L'argomento --build viene usato per ricreare l'immagine dell'applicazione:

docker-compose up --build -d

Testare l'applicazione in locale

Per verificare che l'immagine del contenitore aggiornata mostri le modifiche, aprire un Web browser locale all'indirizzo http://localhost:8080.

Screenshot che mostra un esempio dell'app Votazione Azure con immagine del contenitore aggiornata in esecuzione in locale aperta in un Web browser locale

I valori aggiornati forniti in config_file.cfg vengono visualizzati nell'applicazione in esecuzione.

Applicare tag ed eseguire il push dell'immagine

Per usare correttamente l'immagine aggiornata, contrassegnare l'immagine azure-vote-front con il nome del server di accesso dell'istanza di Registro Azure Container. Ottenere il nome del server di accesso con il comando az acr list:

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

Usare docker tag per assegnare il tag all'immagine. Sostituire <acrLoginServer> con il nome del server di accesso del registro contenitori o il nome host del registro pubblico e aggiornare la versione dell'immagine alla versione 2, come indicato di seguito:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

Usare ora docker push per caricare l'immagine nel registro. Sostituire <acrLoginServer> con il nome del server di accesso di Registro Azure Container.

Nota

Se si verificano problemi durante il push nel registro contenitori, assicurarsi di essere ancora connessi. Eseguire il comando az acr login con il nome del Registro Azure Container creato nel passaggio Creare un Registro Azure Container. Ad esempio: az acr login --name <azure container registry name>.

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

Distribuire l'applicazione aggiornata

Per fornire il tempo di attività massimo, è necessario eseguire più istanze del pod dell'applicazione. Verificare il numero di istanze front-end in esecuzione con il comando kubectl get pods:

$ 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

Se non si hanno più pod front-end, ridimensionare la distribuzione azure-vote-front come di seguito:

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

Per aggiornare l'applicazione, usare il comando kubectl set. Aggiornare <acrLoginServer> con il server di accesso o il nome host del registro contenitori e specificare la versione dell'applicazione v2:

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

Per monitorare la distribuzione, usare il comando kubectl get pod. Quando l'applicazione aggiornata viene distribuita, i pod vengono terminati e ricreati con la nuova immagine del contenitore:

kubectl get pods

L'output di esempio seguente illustra i pod con arresto in corso e le nuove istanze in esecuzione durante l'avanzamento della distribuzione:

$ 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

Testare l'applicazione aggiornata

Per visualizzare l'applicazione aggiornata, ottenere prima l'indirizzo IP esterno del servizio azure-vote-front:

kubectl get service azure-vote-front

Aprire quindi un Web browser per l'indirizzo IP del servizio:

Screenshot che mostra un esempio dell'immagine aggiornata app Azure Voting in esecuzione in un cluster Kubernetes aperto in un Web browser locale.

Passaggi successivi

In questa esercitazione è stata aggiornata un'applicazione e questo aggiornamento è stato implementato nel cluster Kubernetes. Contenuto del modulo:

  • Aggiornare il codice dell'applicazione front-end
  • Creare un'immagine del contenitore aggiornata
  • Eseguire il push dell'immagine del contenitore in Registro Azure Container
  • Distribuire un'immagine del contenitore aggiornata

Passare all'esercitazione successiva per informazioni su come aggiornare un cluster a una nuova versione di Kubernetes.