Mise à jour manuelle de l'agent de ECS conteneur Amazon (pour des applications non optimisées pour AmazonECS) AMIs - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à jour manuelle de l'agent de ECS conteneur Amazon (pour des applications non optimisées pour AmazonECS) AMIs

L'agent de ECS conteneur Amazon doit parfois être mis à jour afin d'obtenir les correctifs de bogues et les nouvelles fonctions. La mise à jour de l'agent de ECS conteneur Amazon n'interrompt pas les tâches ou les services en cours d'exécution sur l'instance de conteneur.

Note

Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

  1. Connectez-vous à votre instance de conteneur viaSSH.

  2. Vérifiez si votre agent utilise la variable d'environnement ECS_DATADIR pour enregistrer son état.

    ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR

    Sortie :

    "ECS_DATADIR=/data",
    Important

    Si la commande précédente ne renvoie pas la variable d'environnement ECS_DATADIR, vous devez arrêter toutes les tâches en cours d'exécution sur cette instance de conteneur avant de mettre à jour votre agent. Les agents récents avec la variable d'environnement ECS_DATADIR enregistrent leur état et sont possibles à mettre à jour sans problèmes tandis que les tâches sont en cours d'exécution.

  3. Arrêtez l'agent de ECS conteneur Amazon.

    ubuntu:~$ docker stop ecs-agent
  4. Supprimez le conteneur de l'agent.

    ubuntu:~$ docker rm ecs-agent
  5. Assurez-vous que le /etc/ecs répertoire et le fichier de configuration de l'agent de ECS conteneur Amazon existent à l'adresse/etc/ecs/ecs.config.

    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
  6. Modifiez le fichier /etc/ecs/ecs.config et vérifiez qu'il contient au moins les déclarations de variable suivantes. Pour que votre instance de conteneur ne s'inscrive pas auprès du cluster par défaut, spécifiez le nom de votre cluster comme valeur pour ECS_CLUSTER.

    ECS_DATADIR=/data ECS_ENABLE_TASK_IAM_ROLE=true ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true ECS_LOGFILE=/log/ecs-agent.log ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"] ECS_LOGLEVEL=info ECS_CLUSTER=default

    Pour plus d'informations sur ces options ainsi que d'autres options d'exécution d'agents, consultez la page Configuration de l'agent de ECS conteneur Amazon.

    Note

    Vous pouvez éventuellement stocker vos variables d'environnement d'agent dans Amazon S3. Elles pourront être téléchargées dans vos instances de conteneur lors du lancement à l'aide des données EC2 utilisateur Amazon. Ceci est particulièrement conseillé pour les informations sensibles, telles que les informations d'authentification pour les référentiels privés. Pour plus d’informations, consultez Stockage de la configuration de l'instance de ECS conteneur Amazon S3 et Utilisation d'images ne AWS provenant pas de conteneurs sur Amazon ECS.

  7. Extrayez la dernière image de l'agent de ECS conteneur Amazon depuis Amazon Elastic Container Registry Public.

    ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest

    Sortie :

    Pulling repository amazon/amazon-ecs-agent a5a56a5e13dc: Download complete 511136ea3c5a: Download complete 9950b5d678a1: Download complete c48ddcf21b63: Download complete Status: Image is up to date for amazon/amazon-ecs-agent:latest
  8. Exécutez l'agent de ECS conteneur Amazon le plus récent sur votre instance de conteneur.

    Note

    Utilisez les stratégies de redémarrage de Docker ou un gestionnaire de processus (tel que upstart ou systemd) pour traiter l'agent de conteneur comme un service ou un démon, et vous assurer qu'il est redémarré après avoir été arrêté. L'Amazon ECS -optimized AMI utilise le ecs-init RPM à cette fin, et vous pouvez consulter le code source pour cela RPM sur GitHub.

    L'exemple suivant de commande d'exécution d'agent est divisé en lignes distinctes pour montrer chaque option. Pour plus d'informations sur ces options ainsi que d'autres options d'exécution d'agents, consultez la page Configuration de l'agent de ECS conteneur Amazon.

    Important

    Les systèmes d'exploitation sur lesquels cette --privileged option est SELinux activée doivent figurer dans votre docker run commande. En outre, pour les instances de conteneur SELinux activées, nous vous recommandons d'ajouter l':Zoption aux montages de /data volume /log et. Cependant, les montages hôtes de ces volumes doivent exister avant d'exécuter la commande. Dans le cas contraire, vous recevrez une erreur no such file or directory. Prenez la mesure suivante si vous rencontrez des difficultés pour exécuter l'ECSagent Amazon sur une instance de conteneur SELinux activée pour Amazon :

    • Créez les points de montage des volumes hôtes sur votre instance de conteneur.

      ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
    • Ajoutez l'option --privileged à la commande docker run ci-dessous.

    • Ajoutez l'option :Z aux montages de volume de conteneur /log et /data (par exemple, --volume=/var/log/ecs/:/log:Z) dans la commande docker run ci-dessous.

    ubuntu:~$ sudo docker run --name ecs-agent \ --detach=true \ --restart=on-failure:10 \ --volume=/var/run:/var/run \ --volume=/var/log/ecs/:/log \ --volume=/var/lib/ecs/data:/data \ --volume=/etc/ecs:/etc/ecs \ --volume=/etc/ecs:/etc/ecs/pki \ --net=host \ --env-file=/etc/ecs/ecs.config \ amazon/amazon-ecs-agent:latest
    Note

    Si vous recevez un message Error response from daemon: Cannot start container, vous pouvez supprimer le conteneur ayant échoué à l'aide de la commande sudo docker rm ecs-agent, puis réessayer d'exécuter l'agent.