Exercice – Déployer un exemple d’application Linux et Windows sur un cluster AKS Edge Essentials
Dans cet exercice, nous déployons une application Linux et Windows conteneurisée sur le cluster AKS Edge Essentials.
Vérifier le déploiement d’AKS Edge Essentials
Remarque
Les commandes suivantes sont exécutées dans la ligne de commande PowerShell de la machine virtuelle.
Vérifiez que le déploiement a réussi en exécutant la commande suivante :
kubectl get nodes -o wide kubectl get pods -A -o wide
L’exemple de capture d’écran suivant montre que les nœuds Linux et Windows sont prêts et que les pods sont en cours d’exécution :
Déployer une application Linux
Déployez un exemple d’application qui est une application de vote simple, composée d’un serveur front-end et back-end, qui est basé sur l’image azure-vote-front de Microsoft. L’image conteneur de cette application est hébergée sur Azure Container Registry (ACR). Consultez linux-sample.yaml dans le package de référentiel GitHub pour le manifeste de déploiement. Dans le fichier YAML, nous avons spécifié une balise nodeSelector
en tant que linux.
Pour déployer votre application, utilisez la commande kubectl apply. Cette commande analyse le fichier manifeste et crée les objets Kubernetes définis. Spécifiez le fichier manifeste YAML, comme indiqué dans l’exemple suivant :
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
Attendez quelques minutes que les pods soient à l’état En cours d’exécution :
kubectl get pods -o wide
L’exemple de sortie suivant montre les pods d’application en cours d’exécution :
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>
Pour superviser la progression, utilisez la commande kubectl get services avec le paramètre
--watch
:kubectl get services --watch
Initialement, le
EXTERNAL-IP
du serviceazure-vote-front
s’affiche sous la formepending
. Lorsque l’adresseEXTERNAL-IP
passe depending
à une adresse IP publique, vous pouvez utiliser l’adresse IP attribuée au service.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
Pour arrêter d’observer, appuyez sur Ctrl+C.
Pour afficher l’application, ouvrez un navigateur et accédez à l’adresse IP et au port attribués au service
azure-vote-front
. Dans l’exemple précédent, l’adresse IP et le port attribués au service sont 192.168.0.4:31032.
Déployer une application Windows
Déployez un exemple d’application ASP.NET Core en fonction de l’exemple d’image de Microsoft. Consultez win-sample-aspnetcore.yaml dans le package de référentiel GitHub pour le manifeste de déploiement. Dans le fichier YAML, nous avons spécifié une balise nodeSelector
en tant que windows.
Utilisez la commande kubectl apply pour déployer l’application :
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample-aspnetcore.yaml
Attendez quelques minutes que le pod soit à l’état En cours d’exécution :
kubectl get pods -o wide
L’exemple de sortie suivant montre que le pod d’application
sample-aspnetcore-786fb44bb-k449c
est en cours d’exécution :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>
Vérifiez que l’exemple de service est en cours d’exécution :
kubectl get services
Prenez ensuite note du
PORT
pour le servicesample-aspnetcore
. Dans cet exemple, il s’agit de 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
Récupérez l’adresse IP du nœud Kubernetes sur lequel l’application s’exécute pour ajouter le port du 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
Pour afficher l’application, ouvrez un navigateur et accédez à l’adresse IP et au port attribués au service
sample-aspnetcore
. Dans l’exemple précédent, l’adresse IP et le port attribués au service sont 192.168.0.3:31767.