Condividi tramite


Distribuire un'applicazione

Questo articolo descrive come distribuire un'applicazione in contenitori nel cluster Kubernetes.

Prerequisiti

Per iniziare, configurare il cluster Kubernetes o Kubernetes completo.

Distribuire un'applicazione Linux di esempio

Passaggio 1: aggiornare il file manifesto

Questo articolo usa un'applicazione di esempio che è una semplice app di voto costituita da un front-end e back-end, basato sull'immagine azure-vote-front di Microsoft. L'immagine del contenitore per questa applicazione è ospitata in Registro Azure Container (ACR). Vedere linux-sample.yaml nel pacchetto repository GitHub per il manifesto della distribuzione. In YAML è stato specificato un nodeSelector tag come Linux.

Passaggio 2: 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 YAML, come illustrato nell'esempio seguente:

kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Passaggio 3: verificare i pod

Attendere alcuni minuti per cui i pod devono trovarsi nello stato in esecuzione :

kubectl get pods -o wide

Screenshot che mostra i pod Linux in esecuzione.

Passaggio 4: verificare i servizi

Per monitorare lo stato di avanzamento, usare il comando kubectl get services con il --watch parametro:

kubectl get services

Screenshot che mostra i servizi Linux in esecuzione.

Inizialmente, l'oggetto EXTERNAL-IP per il azure-vote-front servizio viene visualizzato come pending. Quando l'indirizzo EXTERNAL-IP cambia da pending a un indirizzo IP pubblico effettivo, è possibile usare l'indirizzo IP assegnato al servizio.

Importante

Nei cluster di computer singoli, se è stato distribuito il cluster Kubernetes senza specificare un -ServiceIPRangeSizeoggetto , non saranno stati allocati indirizzi IP per i servizi del carico di lavoro e non si avrà un indirizzo IP esterno. In questo caso, trovare l'indirizzo IP della macchina virtuale Linux (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

È ora possibile aggiungere la porta esterna all'indirizzo IP della macchina virtuale, ad esempio 192.168.1.12:30432.

Passaggio 5: testare l'applicazione

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

Screenshot che mostra le app Linux in esecuzione.

Se l'applicazione non viene caricata, potrebbe verificarsi un problema di autorizzazione con il registro immagini. Per visualizzare lo stato dei contenitori, usare il comandokubectl get pods. Se le immagini del contenitore non possono essere recuperate, vedere Eseguire l'autenticazione con Registro Azure Container da servizio Azure Kubernetes.

Passaggio 6: rimuovere l'applicazione

Per pulire, eliminare tutte le risorse usando il comando seguente:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Distribuire un'applicazione Windows di esempio nel cluster

Questo esempio esegue un'applicazione di esempio ASP.NET basata sull'immagine di esempio di Microsoft. Vedere win-sample.yaml. YAML specifica il nodeSelector tag come Windows.

Passaggio 1: distribuire l'applicazione specificando il nome del manifesto YAML

Assicurarsi di essere nella directory di YAML in una finestra di PowerShell, quindi eseguire il comando seguente:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Passaggio 2: verificare che il pod di esempio sia in esecuzione

Il pod potrebbe richiedere un po' di tempo per raggiungere lo stato di esecuzione, a seconda della connessione Internet. L'immagine ASP.NET è grande:

kubectl get pods -o wide

Screenshot che mostra i pod Windows in esecuzione.

Passaggio 3: verificare che il servizio di esempio sia in esecuzione

kubectl get services

Screenshot che mostra i servizi Windows in esecuzione.

Poiché questo esempio viene distribuito come servizio di tipo NodePort, è possibile recuperare l'indirizzo IP del nodo Kubernetes in cui è in esecuzione l'applicazione, quindi aggiungere la porta di NodePort. Ottenere l'IP del nodo Kubernetes usando il comando seguente Get-AksEdgeNodeAddr:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot che mostra le informazioni sul cluster di Windows.

Passaggio 4: verificare l'esempio di Windows in esecuzione

Aprire un Web browser e individuare NodePort per accedere al servizio:

Screenshot che mostra l'esecuzione dell'app di Windows.

Passaggio 5: pulire

Per pulire, eliminare tutte le risorse usando il comando seguente:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Distribuzione di applicazioni personalizzate

I passaggi precedenti hanno illustrato come distribuire le applicazioni di esempio. Per distribuire un'applicazione personalizzata, eseguire le operazioni seguenti:

  • Creare un pacchetto dell'applicazione in un'immagine del contenitore e quindi caricare l'immagine in Registro Azure Container o in un registro contenitori a scelta. Esaminare questi passaggi per creare un'immagine contenitore dell'applicazione.

  • Il servizio Azure Kubernetes Edge Essentials abilita i cluster del sistema operativo misto. Assicurarsi che i pod vengano pianificati nei nodi con il sistema operativo corrispondente. Aggiungere nodeSelector ai file di distribuzione. Questa opzione indica a Kubernetes di eseguire i pod nei nodi di un sistema operativo specifico. Se il cluster è single-OS, è possibile ignorare questo passaggio; ma per la procedura consigliata, etichettare ogni file di distribuzione con i selettore di nodi:

    nodeSelector:
        "kubernetes.io/os": linux
    
    nodeSelector:
        "kubernetes.io/os": windows
    

Passaggi successivi