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
Passaggio 4: verificare i servizi
Per monitorare lo stato di avanzamento, usare il comando kubectl get services con il --watch
parametro:
kubectl get services
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 -ServiceIPRangeSize
oggetto , 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:
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
Passaggio 3: verificare che il servizio di esempio sia in esecuzione
kubectl get services
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
Passaggio 4: verificare l'esempio di Windows in esecuzione
Aprire un Web browser e individuare NodePort per accedere al servizio:
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