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 conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs)
Il se peut que vous deviez parfois mettre à jour l'agent de conteneur Amazon ECS pour corriger des bogues et intégrer de nouvelles fonctionnalités. La mise à jour de l'agent de conteneur Amazon ECS 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.
-
Connectez-vous à votre instance de conteneur via SSH.
-
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 conteneur Amazon ECS.
ubuntu:~$
docker stop ecs-agent
-
Supprimez le conteneur de l'agent.
ubuntu:~$
docker rm ecs-agent
-
Vérifiez que le répertoire
/etc/ecs
et le fichier de configuration de l'agent de conteneur Amazon ECS existent à l'emplacement/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 conteneur Amazon ECS.
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 conteneur Amazon ECS dans Amazon S3 et Utilisation d'images autres que des AWS conteneurs dans Amazon ECS.
-
Extrayez la dernière image de l'agent de conteneur Amazon ECS 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 l'agent de conteneur Amazon ECS 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'AMI optimisée pour Amazon ECS utilise le
ecs-init
RPM à cette fin, et vous pouvez consulter le code source de ce 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 conteneur Amazon ECS.
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':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'agent Amazon ECS sur une instance de conteneur SELinux activée :-
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. -