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