Esercitazione: Distribuire app in servizio Azure Kubernetes in Azure Stack HCI e Windows Server

È possibile creare e distribuire app e servizi personalizzati in un cluster Kubernetes in servizio Azure Kubernetes (AKS) in Azure Stack HCI e Windows Server. Kubernetes offre una piattaforma distribuita per le app in contenitori. È possibile consentire al cluster di gestire la disponibilità e la connettività. Questa esercitazione, parte quattro di sette, descrive come distribuire un'applicazione di esempio in un cluster Kubernetes.

Si apprenderà come:

  • Aggiornare un file manifesto Kubernetes
  • Distribuire un'applicazione in Kubernetes
  • Testare l'applicazione

Le esercitazioni successive descrivono come ridimensionare e aggiornare l'applicazione.

Questa guida introduttiva presuppone una comprensione di base dei concetti relativi a Kubernetes.

Prima di iniziare

Le esercitazioni precedenti descrivono come creare un pacchetto di un'applicazione in un'immagine del contenitore e quindi caricare l'immagine nel Registro Azure Container e creare un cluster Kubernetes.

Per completare questa esercitazione, sarà necessario il file manifesto Kubernetes precedentemente creato azure-vote-all-in-one-redis.yaml . Questo file è stato scaricato con il codice sorgente dell'applicazione in un'esercitazione precedente. Verificare che il repository sia stato clonato e che le directory siano state impostate sul repository clonato. Se questi passaggi non sono stati eseguiti, iniziare con [Esercitazione 1 - Creare immagini contenitore][aks-tutorial-prepare-application.md].

Questa esercitazione richiede l'interfaccia della riga di comando di Azure versione 2.0.53 o successiva. Eseguire az --version per trovare la versione. Se è necessario installarlo o aggiornarlo, vedere Installare l'interfaccia della riga di comando di Azure.

Aggiornare il file manifesto

In queste esercitazioni un'istanza di Registro Azure Container archivia l'immagine 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 server di accesso di Registro Azure Container.

Ottenere il nome del server di accesso di Registro Azure Container usando il comando az acr list come di seguito:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

Il file manifesto di esempio del repository Git clonato nella prima esercitazione usa il nome del server di accesso microsoft. Assicurarsi di essere nella directory clonata azure-voting-app-redis e quindi aprire il file manifesto in un editor di testo, ad esempio notepad:

notepad azure-vote-all-in-one-redis.yaml

Sostituire microsoft con il nome del server di accesso di Registro Azure Container. Il nome dell'immagine viene trovato nella riga 60 del file manifesto. L'esempio seguente mostra il nome dell'immagine predefinito:

containers:
- name: azure-vote-front
  image: mcr.microsoft.com/azuredocs/azure-vote-front:v1

Immettere il proprio nome del server di accesso di Registro Azure Container in modo che il file manifesto abbia un aspetto simile al seguente:

containers:
- name: azure-vote-front
  image: <acrName>.azurecr.io/azure-vote-front:v1

Salvare e chiudere il file.

Distribuire l'applicazione

Per distribuire l'applicazione, usare il comando kubectl apply. Questo comando analizza il file manifesto e crea gli oggetti Kubernetes definiti. Specificare il file manifesto di esempio, come illustrato nell'esempio seguente:

kubectl apply -f azure-vote-all-in-one-redis.yaml

L'output di esempio seguente mostra le risorse create correttamente nel servizio Azure Kubernetes in Azure Stack HCI e nel cluster server di Windows:

$ kubectl apply -f azure-vote-all-in-one-redis.yaml

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Test dell'applicazione

Durante l'esecuzione dell'applicazione, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Il processo potrebbe richiedere alcuni minuti.

Per monitorare lo stato, usare il comando kubectl get service con l'argomento --watch.

kubectl get service azure-vote-front --watch

Inizialmente l'indirizzo EXTERNAL-IP per il servizio azure-vote-front viene visualizzato come in sospeso:

azure-vote-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s

Quando EXTERNAL-IP passa da pending a un effettivo 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:

azure-vote-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s

Per vedere l'applicazione in azione, aprire un Web browser all'indirizzo IP esterno del servizio:

Screenshot showing the container image Azure Voting App running in an AKS cluster opened in a local web browser

Se l'applicazione non è stata caricata, potrebbe essersi verificato 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.

Passaggi successivi

In questa esercitazione è stata distribuita un'applicazione di voto di Azure di esempio in un cluster Kubernetes nel servizio Azure Kubernetes in Azure Stack HCI e Windows Server. Si è appreso come:

  • Aggiornare un file manifesto Kubernetes
  • Eseguire un'applicazione in Kubernetes
  • Testare l'applicazione

Passare all'esercitazione successiva per informazioni su come ridimensionare un'applicazione Kubernetes e l'infrastruttura Kubernetes sottostante.