Tutoriel : Déployer un conteneur Spot avec Azure Container Instances en utilisant Azure CLI (préversion)
Les conteneurs Spot allient la simplicité d’ACI et le faible coût des machines virtuelles Spot, ce qui en fait un choix économique et simple d’utilisation pour les clients qui souhaitent exécuter à grande échelle des charges de travail interruptibles et conteneurisées. Azure Container Instances permet d’exécuter des conteneurs Spot serverless. Vous pouvez envisager de déployer une application sur un conteneur Spot à la demande si vous souhaitez exécuter des charges de travail interruptibles et conteneurisées sur une capacité Azure non utilisée à faible coût et si vous n’avez pas besoin d’une plateforme d’orchestration de conteneurs complète comme Azure Kubernetes Service.
Dans ce guide de démarrage rapide, vous allez utiliser Azure CLI pour déployer un conteneur « helloworld » en utilisant des conteneurs Spot. Quelques secondes après avoir exécuté une commande de déploiement, vous pouvez accéder aux journaux du conteneur :
- Ce guide de démarrage rapide nécessite la version 2xxx ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Créer un groupe de ressources
Les instances de conteneur Azure, comme toutes les ressources Azure, doivent être déployées dans un groupe de ressources. Les groupes de ressources vous permettent d’organiser et de gérer les ressources Azure connexes.
Commencez par créer un groupe de ressources nommé myResourceGroup à l’emplacement westus à l’aide de la commande az group create suivante :
az group create --name myResourceGroup --location westus
Créez un conteneur.
Maintenant que vous disposez d’un groupe de ressources, vous pouvez exécuter un conteneur Spot dans Azure. Pour créer un groupe de conteneurs Spot avec Azure CLI, fournissez un nom de groupe de ressources, un nom d’instance de conteneur, une image de conteneur et une nouvelle propriété appelée « priorité » avec la valeur « Spot » à la commande az container create. Dans ce démarrage rapide, vous utilisez l’image mcr.microsoft.com/azuredocs/aci-helloworld
publique. Cette image contient une petite application web écrite en Node.js qui sert une page HTML statique.
Vous ne pouvez pas exposer vos conteneurs Spot à Internet en spécifiant un ou plusieurs ports à ouvrir, une étiquette de nom DNS ou les deux. Dans ce guide de démarrage rapide, vous allez déployez un conteneur en utilisant une image « helloworld » sans étiquette de nom DNS. Il n'est pas accessible au public. Vous pouvez interroger les journaux du conteneur pour vérifier que celui-ci écoute sur le port par défaut 80.
Pour démarrer une instance de conteneur, exécutez une commande similaire à la suivante.
az container create --resource-group acispotdemo --name acispotclitest --image mcr.microsoft.com/azuredocs/aci-helloworld --priority spot
Après quelques secondes, vous devriez recevoir une réponse d’Azure CLI indiquant que le déploiement est terminé. Vérifiez son état à l’aide de la commande az container show :
az container show --resource-group acispotdemo --name acispotclitest --query "{ProvisioningState:provisioningState}" --out table
Lorsque vous exécutez la commande, le nom de domaine complet du conteneur et son état d’approvisionnement s’affichent.
ContainerGroupName ProvisioningState
--------------------------------- -------------------
acispotclitest Succeeded
Si l’état ProvisioningState
du conteneur est Succeeded, félicitations ! Cela signifie que vous avez réussi à déployer une application s’exécutant dans un conteneur Docker sur Azure.
Extraire les journaux d’activité de conteneur
Lorsque vous avez besoin de résoudre les problèmes relatifs à un conteneur ou à l’application qu’il exécute (ou simplement afficher son résultat), commencez par consulter les journaux d’activité de l’instance de conteneur.
Extrayez les journaux d’instance de conteneur avec la commande az container logs :
az container logs --resource-group acispotdemo --name acispotclitest
La sortie affiche les journaux du conteneur et doit afficher la sortie suivante
listening on port 80
Joindre des flux de sortie
En plus de consulter les journaux d’activité, vous pouvez joindre vos flux de sortie locale standard et d’erreur standard à ceux du conteneur.
Exécutez d’abord la commande az container attach pour joindre votre console locale aux flux de sortie du conteneur :
az container attach --resource-group acispotdemo --name acispotclitest
Une fois la liaison effectuée, actualisez votre navigateur plusieurs fois pour générer une sortie plus conséquente. Ensuite, détachez votre console avec la commande Control+C
. Vous devez obtenir une sortie similaire à la suivante :
Container 'acispotclitest' is in state 'Running'...
Start streaming logs:
listening on port 80
Nettoyer les ressources
Dès que vous avez fini d’utiliser le conteneur, supprimez-le à l’aide de la commande az container delete :
az container delete --resource-group acispotdemo --name acispotclitest
Pour vérifier que le conteneur a été supprimé, exécutez la commande az container list :
az container list --resource-group acispotdemo --output table
Le conteneur acispotclitest ne doit pas figurer dans la sortie de la commande. Si vous ne disposez d’aucun autre conteneur dans le groupe de ressources, aucune sortie ne s’affiche.
Si vous en avez terminé avec le groupe de ressources acispotclitest et toutes les ressources qu’il contient, supprimez-le avec la commande az group delete :
az group delete --name acispotdemo
Étapes suivantes
Dans ce tutoriel, vous avez créé un conteneur Spot sur Azure Container Instances avec une stratégie de quota et d’éviction par défaut et en utilisant Azure CLI.