Exercice – Déployer un exemple d’application Linux et Windows sur un cluster AKS Edge Essentials

Effectué

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.

  1. 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 :

    Screenshot of Windows VM with PowerShell commands output demonstrating a successful deployment of AKS Edge Essentials.

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.

  1. 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
    
  2. 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>
    
  3. Pour superviser la progression, utilisez la commande kubectl get services avec le paramètre --watch :

    kubectl get services --watch
    

    Initialement, le EXTERNAL-IP du service azure-vote-front s’affiche sous la forme pending. Lorsque l’adresse EXTERNAL-IP passe de pending à 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.

  4. 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.

    Screenshot of Windows VM with linux sample application running in the browser.

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.

  1. 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
    
  2. 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>
    
  3. Vérifiez que l’exemple de service est en cours d’exécution :

    kubectl get services
    

    Prenez ensuite note du PORT pour le service sample-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
    
  4. 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
    
  5. 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.

    Screenshot of Windows VM with windows sample application running in the browser.