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:

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.

  1. 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
    
  2. 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
    
  3. 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
    ...
    
  4. Salva e chiudi il file. In vi usare :wq.

Eseguire l'applicazione

  1. 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
    
  2. 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

  1. 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
    
  2. Quando l'indirizzo EXTERNAL-IP passa da in sospeso a un indirizzo IP pubblico effettivo, usare CTRL-C per arrestare il processo di kubectl 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
    
  3. Visualizzare l'applicazione in azione aprendo un Web browser all'indirizzo IP esterno del servizio.

    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 da servizio Azure Kubernetes.

Azure portal

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

  1. Aprire il gruppo di risorse nel portale di Azure

  2. Passare al servizio Kubernetes per il cluster

  3. Selezionare Services and Ingress in Kubernetes Resources

  4. Copiare l'indirizzo IP esterno visualizzato nella colonna per store-front

  5. Incollare l'INDIRIZZO IP nel browser e visitare la pagina dello Store

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

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.