Esercitazione: Distribuire un'applicazione in servizio Azure Kubernetes (servizio Azure Kubernetes)
Kubernetes fornisce una piattaforma distribuita per applicazioni in contenitori. È possibile compilare e distribuire applicazioni e servizi personalizzati in un cluster Kubernetes e consentire al cluster di gestire la disponibilità e la connettività.
In questa esercitazione, parte quattro di sette, si distribuisce 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 i prerequisiti per i cluster servizio Azure Kubernetes nell'esercitazione su 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 precreato aks-store-quickstart.yaml
. Questo file è stato scaricato nel codice sorgente dell'applicazione dall'esercitazione 1 - Preparare l'applicazione per il servizio Azure Kubernetes.
Questa esercitazione richiede l'interfaccia della riga di comando di Azure versione 2.0.53 o successiva. 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 l'istanza di Registro Azure Container archivia le immagini del contenitore per l'applicazione di esempio. Per distribuire l'applicazione, è necessario aggiornare i nomi delle immagini nel file manifesto kubernetes per includere il nome del server di accesso del Registro Azure Container.
Ottenere l'indirizzo del server di accesso usando il
az acr list
comando 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 con un editor di testo, ad esempio
vi
.vi aks-store-quickstart.yaml
Aggiornare la
image
proprietà 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. In
vi
usare:wq
.
Eseguire l'applicazione
Distribuire l'applicazione usando il
kubectl apply
comando , 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:
deployment.apps/rabbitmq 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
Verificare che la distribuzione sia riuscita 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
kubectl get service
comando con l'argomento--watch
.kubectl get service store-front --watch
Inizialmente, per
EXTERNAL-IP
il servizio store-front viene visualizzato come in sospeso:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Quando l'indirizzo
EXTERNAL-IP
passa da in sospeso a un indirizzo IP pubblico effettivo, usareCTRL-C
per arrestare il processo dikubectl
controllo.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 all'indirizzo IP esterno del servizio.
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 da servizio Azure Kubernetes.
Azure portal
Passare al portale di Azure per trovare le informazioni sulla distribuzione.
Aprire il gruppo di risorse nel portale di Azure
Passare al servizio Kubernetes per il cluster
Selezionare
Services and Ingress
inKubernetes Resources
Copiare l'indirizzo IP esterno visualizzato nella colonna per store-front
Incollare l'INDIRIZZO IP nel browser e visitare la pagina dello Store
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.