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 les produits non optimisés pour AmazonECS) AMIs
Il se peut que vous deviez parfois mettre à jour l'agent de ECS conteneur Amazon pour corriger des bogues et intégrer de nouvelles fonctionnalités. La mise à jour de l'agent de ECS conteneur Amazon n'interrompt pas l'exécution des tâches ou des services 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.
-
Connectez-vous à votre instance de conteneur viaSSH.
-
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'environnementECS_DATADIR
enregistrent leur état et sont possibles à mettre à jour sans problèmes tandis que les tâches sont en cours d'exécution. -
Arrêtez l'agent de ECS conteneur Amazon.
ubuntu:~$
docker stop ecs-agent
-
Supprimez le conteneur de l'agent.
ubuntu:~$
docker rm ecs-agent
-
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
-
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 pourECS_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 les variables d'environnement de votre agent dans Amazon S3 (qui peuvent être téléchargées sur vos instances de conteneur au moment 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 dans Amazon S3 et Utilisation d'images ne AWS provenant pas de conteneurs sur Amazon ECS.
-
Récupérez 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
-
Exécutez le dernier agent de ECS conteneur Amazon 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 RPMsur 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 SELinux activés nécessitent
--privileged
cette option dans votre docker run commande. En outre, pour les instances de conteneur SELinux activées, nous vous recommandons d'ajouter l':Z
option 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 erreurno such file or directory
. Procédez comme suit si vous rencontrez des difficultés pour exécuter l'ECSagent Amazon sur une instance de conteneur SELinux compatible :-
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. -