Condividi tramite


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:

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.

  1. 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
    
  2. Assicurarsi di essere nella directory aks-store-demo clonata e quindi aprire il file manifesto aks-store-quickstart.yaml con un editor di testo.

  3. 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
    ...
    
  4. Salva e chiudi il file.

Eseguire l'applicazione

  1. 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
    
  2. Verificare che la distribuzione sia riuscita visualizzando i pod con il kubectl get pods comando .

    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

  1. 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 servizio store-front viene visualizzato come <pending>:

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. Quando l'indirizzo EXTERNAL-IP passa da <pending> a un indirizzo IP pubblico, usare CTRL-C per arrestare il processo di controllo kubectl.

    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
    
  3. Visualizzare l'applicazione in azione aprendo un Web browser e passando all'indirizzo IP esterno del servizio: http://<external-ip>.

    Screenshot dell'applicazione di esempio dello Store del servizio Azure Kubernetes.

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.

Portale di Azure

Passare alla portale di Azure per trovare le informazioni sulla distribuzione.

  1. Passare alla risorsa cluster del servizio Azure Kubernetes.

  2. Dal menu del servizio, in Risorse Kubernetes selezionare Servizi e ingresso.

  3. Copiare l'indirizzo IP esterno visualizzato nella colonna per il store-front servizio.

  4. Incollare l'INDIRIZZO IP nel browser per visitare la pagina dello Store.

    Screenshot dell'applicazione di esempio dello Store del servizio Azure Kubernetes.

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.

  1. Arrestare e rimuovere le istanze e le risorse del contenitore usando il comando kubectl delete.

    kubectl delete -f aks-store-quickstart.yaml
    
  2. 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.