Esercizio - Distribuire un'applicazione Linux e Windows di esempio nel cluster AKS Edge Essentials
In questo esercizio viene distribuita un'applicazione Linux e Windows in contenitori nel cluster AKS Edge Essentials.
Verificare la distribuzione di AKS Edge Essentials
Nota
I comandi seguenti vengono eseguiti nella riga di comando di PowerShell della macchina virtuale.
Verificare che la distribuzione sia riuscita eseguendo il comando seguente:
kubectl get nodes -o wide kubectl get pods -A -o wide
Lo screenshot di esempio seguente mostra che i nodi Linux e Windows sono pronti e che i pod sono in esecuzione:
Distribuire un'applicazione Linux
Distribuire un'applicazione di esempio, una semplice app di voto, costituita da un front-end e un back-end, basata sull'immagine azure-vote-front di Microsoft. L'immagine del contenitore per questa applicazione è ospitata in Registro Azure Container. Vedere linux-sample.yaml nel pacchetto del repository GitHub per il manifesto della distribuzione. In YAML, è stato specificato un tag nodeSelector
come linux.
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
Attendere alcuni minuti che i pod siano nello stato di esecuzione:
kubectl get pods -o wide
L'output di esempio seguente mostra che i pod dell'applicazione sono in esecuzione:
PS C:\Users\azureuser> kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES azure-vote-back-66c88ccc8-fjwfq 1/1 Running 0 46s 10.42.0.6 myvm-ledge <none> <none> azure-vote-front-85dc674b97-xp8d8 1/1 Running 0 46s 10.42.0.7 myvm-ledge <none> <none>
Per monitorare lo stato di avanzamento, usare il comando kubectl get services con il parametro
--watch
:kubectl get services --watch
Inizialmente, l'oggetto
EXTERNAL-IP
per il servizioazure-vote-front
viene visualizzato comepending
. Quando l'indirizzoEXTERNAL-IP
passa dapending
a un indirizzo IP pubblico effettivo, è possibile usare l'indirizzo IP assegnato al servizio.PS C:\Users\azureuser> kubectl get services --watch NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-back ClusterIP 10.43.208.68 <none> 6379/TCP 4m52s azure-vote-front LoadBalancer 10.43.125.83 192.168.0.4 80:31032/TCP 4m52s kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 16m
Premere CTRL+C per smettere di guardare.
Per visualizzare l'applicazione, aprire un browser e passare all'indirizzo IP e alla porta assegnati al servizio
azure-vote-front
. Nell'esempio precedente, l'indirizzo IP e la porta assegnati al servizio sono 192.168.0.4:31032.
Distribuire un'applicazione Windows
Distribuire un'applicazione di esempio ASP.NET Core in base all'immagine di esempio di Microsoft. Vedere win-sample-aspnetcore.yaml nel pacchetto del repository GitHub per il manifesto della distribuzione. In YAML è stato specificato un tag nodeSelector
come finestre.
Usare il comando kubectl apply per distribuire l'applicazione:
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample-aspnetcore.yaml
Attendere alcuni minuti che il pod sia nello stato di esecuzione:
kubectl get pods -o wide
L'output di esempio seguente mostra che il pod dell'applicazione
sample-aspnetcore-786fb44bb-k449c
è in esecuzione:PS C:\Users\azureuser> kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES azure-vote-back-66c88ccc8-fjwfq 1/1 Running 0 8m 10.42.0.6 myvm-ledge <none> <none> azure-vote-front-85dc674b97-xp8d8 1/1 Running 0 8m 10.42.0.7 myvm-ledge <none> <none> sample-aspnetcore-786fb44bb-k449c 1/1 Running 0 2m56s 10.42.1.3 myvm-wedge <none> <none>
Verificare che il servizio di esempio sia in esecuzione:
kubectl get services
Prendere quindi nota di
PORT
per il serviziosample-aspnetcore
. In questo esempio, è 31767.PS C:\Users\azureuser> kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-back ClusterIP 10.43.208.68 <none> 6379/TCP 10m52s azure-vote-front LoadBalancer 10.43.125.83 192.168.0.4 80:31032/TCP 10m52s kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 26m sample-aspnetcore NodePort 10.43.237.30 <none> 8080:31767/TCP 6m40s
Recuperare l'indirizzo IP del nodo Kubernetes in cui è in esecuzione l'applicazione per aggiungere la porta di NodePort:
Get-AksEdgeNodeAddr -NodeType Windows
PS C:\Users\azureuser> Get-AksEdgeNodeAddr -NodeType Windows [01/16/2024 14:44:22] Querying IP and MAC addresses from virtual machine (myvm-wedge) - Virtual machine MAC: 00:15:5d:02:7c:eb - Virtual machine IP : 192.168.0.3 retrieved directly from virtual machine Name Value ---- ----- IpAddress 192.168.0.3 MacAddress 00:15:5d:02:7c:eb
Per visualizzare l'applicazione, aprire un browser e passare all'indirizzo IP e alla porta assegnati al servizio
sample-aspnetcore
. Nell'esempio precedente l'indirizzo IP e la porta assegnati al servizio sono 192.168.0.3:31767.