Exercice : Contrôler le comportement du redémarrage

Effectué

La facilité et la rapidité du déploiement des conteneurs dans Azure Container Instances en font une solution idéale pour les tâches à exécution unique, comme le rendu d’images ou la génération et le test d’applications.

Avec une stratégie de redémarrage configurable, vous pouvez spécifier que vos conteneurs doivent s’arrêter quand leurs processus sont terminés. Comme les instances de conteneur sont facturées à la seconde, vous êtes facturé seulement pour les ressources de calcul utilisées au moment où le conteneur qui exécute votre tâche s’exécute.

Présentation des stratégies de redémarrage des conteneurs

Azure Container Instances offre trois options de stratégie de redémarrage :

Stratégie de redémarrage Description
Toujours Les conteneurs du groupe de conteneurs sont toujours redémarrés. Cette stratégie est utile pour les tâches à long terme comme un serveur web. Il s’agit du paramètre appliqué par défaut quand aucune stratégie de redémarrage n’est spécifiée à la création du conteneur.
Jamais Les conteneurs du groupe de conteneurs ne sont jamais redémarrés. Les conteneurs sont exécutés une seule fois.
OnFailure Les conteneurs du groupe de conteneurs sont redémarrés uniquement en cas d’échec des processus qui y sont exécutés (quand ceux-ci se terminent avec un code de sortie différent de zéro). Les conteneurs sont exécutés au moins une fois. Cette stratégie fonctionne bien pour les conteneurs qui exécutent des tâches de courte durée.

Exécuter un conteneur jusqu’à la fin

Pour voir la stratégie de redémarrage à l’œuvre, créez une instance de conteneur à partir de l’image de conteneur azuredocs/aci-wordcount, puis spécifiez la stratégie de redémarrage OnFailure. Ce conteneur exécute un script Python qui analyse le texte de Hamlet de Shakespeare, écrit les 10 mots les plus fréquents dans la sortie standard, puis se termine.

  1. Exécutez cette commande az container create pour démarrer le conteneur :

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Azure Container Instances démarre le conteneur, puis l’arrête quand son processus (dans ce cas, un script) se termine. Quand Azure Container Instances arrête un conteneur dont la stratégie de redémarrage est Jamais ou OnFailure, l’état du conteneur est défini sur Terminé.

  2. Exécutez az container show pour vérifier l’état du conteneur :

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    Répétez la commande jusqu’à atteindre l’état Terminé.

  3. Exécutez az container logs pour afficher les journaux du conteneur afin d’examiner la sortie :

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    Vous obtenez cette sortie :

    [('the', 990),
     ('and', 702),
     ('of', 628),
     ('to', 610),
     ('I', 544),
     ('you', 495),
     ('a', 453),
     ('my', 441),
     ('in', 399),
     ('HAMLET', 386)]