Esercitazione: Distribuire un'applicazione nel servizio Azure Kubernetes (AKS)
Kubernetes fornisce una piattaforma distribuita per applicazioni in contenitori. Si compilano e si distribuiscono le applicazioni e i servizi in un cluster Kubernetes e si consente al cluster di gestire la disponibilità e la connettività.
In questa esercitazione, parte quattro di sette, si distribuirà un'applicazione di esempio in un cluster Kubernetes. Scopri come:
- Aggiornare un file manifesto Kubernetes.
- Eseguire un'applicazione in Kubernetes.
- Testare l'applicazione.
Suggerimento
Con il servizio Azure Kubernetes è possibile usare gli approcci seguenti per la gestione della configurazione:
GitOps: abilita le dichiarazioni dello stato del cluster per l'applicazione automatica al cluster. Per informazioni su come usare GitOps per distribuire un'applicazione con un cluster del servizio Azure Kubernetes, vedere l'esercitazione prerequisiti per i cluster del servizio Azure Kubernetes nell'esercitazione GitOps con Flux v2.
DevOps: consente di compilare, testare e distribuire con integrazione continua (CI) e recapito continuo (CD). Per esempi di come usare DevOps per distribuire un'applicazione con un cluster del servizio Azure Kubernetes, vedere Creare e distribuire nel servizio Azure Kubernetes con Azure Pipelines o GitHub Actions per la distribuzione in Kubernetes.
Operazioni preliminari
Nelle esercitazioni precedenti è stata inserita un'applicazione in un'immagine del contenitore, è stata caricata l'immagine in Registro Azure Container e è stato creato un cluster Kubernetes. Per completare questa esercitazione, è necessario il file manifesto Kubernetes aks-store-quickstart.yaml
creato in precedenza. Questo file è stato scaricato nel codice sorgente dell'applicazione da Esercitazione 1 - Preparare l'applicazione per il servizio Azure Kubernetes.
Questa esercitazione richiede l'interfaccia della riga di comando di Azure 2.0.53 o versioni successive. Controllare la versione con az --version
. Per installare o eseguire l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Aggiornare il file manifesto
In queste esercitazioni, la propria istanza di Registro Azure Container archivia immagini del contenitore per l'applicazione di esempio. Per distribuire l'applicazione, è necessario aggiornare il nome dell'immagine nel file manifesto di Kubernetes includendo il nome del proprio server di accesso di Registro Azure Container.
Ottenere l'indirizzo del server di accesso usando il comando
az acr list
e la query per il server di accesso.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Assicurarsi di essere nella directory aks-store-demo clonata e quindi aprire il file manifesto
aks-store-quickstart.yaml
con un editor di testo.Aggiornare la proprietà
image
per i contenitori sostituendo ghcr.io/azure-samples con il nome del server di accesso del Registro Azure Container.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Salva e chiudi il file.
Eseguire l'applicazione
Distribuire l'applicazione usando il comando
kubectl apply
, che analizza il file manifesto e crea gli oggetti Kubernetes definiti.kubectl apply -f aks-store-quickstart.yaml
L'output di esempio seguente mostra che le risorse sono state create correttamente nel cluster del servizio Azure Kubernetes:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Controllare che la distribuzione abbia avuto esito positivo visualizzando i pod con
kubectl
kubectl get pods
Testare l'applicazione
Quando l'applicazione viene eseguita, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Questo processo può richiedere alcuni minuti.
Riga di comando
Monitorare lo stato di avanzamento usando il comando
kubectl get service
con l'argomento--watch
.kubectl get service store-front --watch
Inizialmente,
EXTERNAL-IP
per il serviziostore-front
viene visualizzato come<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quando l'indirizzo
EXTERNAL-IP
passa da<pending>
a un indirizzo IP pubblico, usareCTRL-C
per arrestare il processo di controllokubectl
.L'output di esempio seguente mostra un indirizzo IP pubblico valido assegnato al servizio:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Visualizzare l'applicazione in azione aprendo un Web browser e passando all'indirizzo IP esterno del servizio:
http://<external-ip>
.
Se l'applicazione non viene caricata, potrebbe trattarsi di un problema di autorizzazione con il registro immagini. Per visualizzare lo stato dei contenitori, usare il comandokubectl get pods
. Se non è possibile eseguire il pull delle immagini del contenitore, vedere Eseguire l'autenticazione con Registro Azure Container dal servizio Azure Kubernetes.
Azure portal
Passare alla portale di Azure per trovare le informazioni sulla distribuzione.
Passare alla risorsa cluster del servizio Azure Kubernetes.
Dal menu del servizio, in Risorse Kubernetes selezionare Servizi e ingresso.
Copiare l'indirizzo IP esterno visualizzato nella colonna per il
store-front
servizio.Incollare l'INDIRIZZO IP nel browser per visitare la pagina dello Store.
Pulire le risorse
Poiché è stata convalidata la funzionalità dell'applicazione, è ora possibile rimuovere il cluster dall'applicazione. L'applicazione verrà distribuita di nuovo nell'esercitazione successiva.
Arrestare e rimuovere le istanze e le risorse del contenitore usando il comando
kubectl delete
.kubectl delete -f aks-store-quickstart.yaml
Verificare che tutti i pod dell'applicazione siano stati rimossi usando il
kubectl get pods
comando .kubectl get pods
Passaggi successivi
In questa esercitazione è stata distribuita un'applicazione Azure di esempio in un cluster Kubernetes nel servizio Azure Kubernetes. Contenuto del modulo:
- Aggiornare un file manifesto Kubernetes.
- Eseguire un'applicazione in Kubernetes.
- Testare l'applicazione.
Nell'esercitazione successiva si apprenderà come usare i servizi PaaS per carichi di lavoro con stato in Kubernetes.
Azure Kubernetes Service