Déployer une application

Cet article explique comment déployer une application en conteneur sur votre cluster Kubernetes.

Prérequis

Pour commencer, configurez votre machine unique Kubernetes ou un cluster Kubernetes complet .

Déployer un exemple d’application Linux

Étape 1 : mettre à jour le fichier manifeste

Cet article utilise un exemple d’application qui est une application de vote simple composée d’un front-end et d’un 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). Pour connaître le manifeste de déploiement, consultez linux-sample.yaml dans le package de référentiel GitHub. Dans YAML, nous avons spécifié une nodeSelector balise en tant que Linux.

Étape 2 : déployer l’application

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

Étape 3 : vérifier les pods

Attendez quelques minutes que les pods soient en cours d’exécution :

kubectl get pods -o wide

Capture d’écran montrant les pods Linux en cours d’exécution.

Étape 4 : vérifier les services

Pour surveiller la progression, utilisez la commande kubectl get services avec le --watch paramètre :

kubectl get services

Capture d’écran montrant les services Linux en cours d’exécution.

Initialement, le EXTERNAL-IP pour le azure-vote-front service s’affiche sous la forme pending. Lorsque l’adresse EXTERNAL-IP passe d’une pending adresse IP publique réelle, vous pouvez utiliser l’adresse IP affectée au service.

Important

Sur les clusters d’ordinateurs uniques, si vous avez déployé votre cluster Kubernetes sans spécifier de -ServiceIPRangeSize, vous n’aurez pas d’adresses IP allouées pour vos services de charge de travail et vous n’aurez pas d’adresse IP externe. Dans ce cas, recherchez l’adresse IP de votre machine virtuelle Linux (Get-AksEdgeNodeAddr) :

Get-AksEdgeNodeAddr -NodeType Linux

Vous pouvez maintenant ajouter le port externe à l’adresse IP de la machine virtuelle (par exemple, 192.168.1.12 :30432).

Étape 5 : tester votre application

Pour voir l’application en action, ouvrez un navigateur web en utilisant l’adresse IP externe de votre service :

Capture d’écran montrant les applications Linux en cours d’exécution.

Si l’application ne se charge pas, cela peut être dû à un problème d’autorisation avec votre registre d’images. Pour visualiser l’état de vos conteneurs, utilisez la commande kubectl get pods. Si les images conteneur ne peuvent pas être récupérées, consultez s’authentifier avec Azure Container Registry à partir de Azure Kubernetes Service.

Étape 6 : supprimer l’application

Pour propre, supprimez toutes les ressources à l’aide de la commande suivante :

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

Déployer un exemple d’application Windows sur votre cluster

Cet exemple exécute un exemple d’application ASP.NET basé sur l’exemple d’image de Microsoft. Consultez win-sample.yaml. YAML spécifie la nodeSelectorbalise windows.

Étape 1 : déployer l’application en spécifiant le nom de votre manifeste YAML

Vérifiez que vous êtes dans le répertoire de YAML dans une fenêtre PowerShell, puis exécutez la commande suivante :

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

Étape 2 : vérifier que l’exemple de pod est en cours d’exécution

Cela peut prendre un certain temps pour que le pod atteigne le status en cours d’exécution, en fonction de votre connexion Internet. L’image ASP.NET est grande :

kubectl get pods -o wide

Capture d’écran montrant les pods Windows en cours d’exécution.

Étape 3 : vérifier que l’exemple de service est en cours d’exécution

kubectl get services

Capture d’écran montrant les services Windows en cours d’exécution.

Étant donné que cet exemple est déployé en tant que service de type NodePort, vous pouvez récupérer l’adresse IP du nœud Kubernetes sur lequel l’application s’exécute, puis ajouter le port du NodePort. Obtenez l’adresse IP du nœud Kubernetes à l’aide de la commande suivante Get-AksEdgeNodeAddr:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot affichant des informations de cluster Windows.

Étape 4 : vérifier votre exemple Windows en cours d’exécution

Ouvrez un navigateur web et recherchez le NodePort pour accéder à votre service :

Capture d’écran montrant l’application Windows en cours d’exécution.

Étape 5 : propre vers le haut

Pour propre, supprimez toutes les ressources à l’aide de la commande suivante :

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

Déploiement de vos propres applications

Les étapes précédentes ont montré comment déployer nos exemples d’applications. Pour déployer votre propre application, procédez comme suit :

  • Empaqueter votre application dans une image conteneur, puis charger l’image sur Azure Container Registry ou dans un registre de conteneurs de votre choix. Passez en revue ces étapes pour créer une image conteneur de votre application.

  • AKS Edge Essentials active les clusters de système d’exploitation mixte. Assurez-vous que vos pods sont planifiés sur les nœuds avec le système d’exploitation correspondant. Ajoutez nodeSelector à vos fichiers de déploiement. Cette option indique à Kubernetes d’exécuter vos pods sur les nœuds d’un système d’exploitation particulier. Si votre cluster est un système d’exploitation unique, vous pouvez ignorer cette étape ; mais pour les bonnes pratiques, étiquetez chaque fichier de déploiement avec des sélecteurs de nœud :

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

Étapes suivantes