Pourquoi mes instances de conteneur Amazon ECS avec des AMI Amazon Linux 1 sont-elles déconnectées?
Mes instances de conteneur Amazon Elastic Container Service (Amazon ECS) sont déconnectées.
Brève description
Votre agent de conteneur Amazon ECS peut se connecter et se reconnecter plusieurs fois par heure. Ces événements de modification sont normaux et ne doivent pas vous inquiéter.
Toutefois, si l'agent de conteneur reste déconnecté, il est possible que l'instance de conteneur cesse de fonctionner dans le cadre de votre cluster ECS. L'agent est déconnecté lorsque agentConnected renvoie la valeur false. Le problème peut avoir les origines suivantes :
- Des problèmes de mise en réseau empêchent la communication entre l'instance et Amazon ECS.
- L'agent de conteneur n'a pas les autorisations AWS Identity and Access Management (IAM) nécessaires pour communiquer avec les points de terminaison Amazon ECS.
- Il existe des problèmes liés à l'hôte ou au service Docker dans l'instance de conteneur.
Procédez comme suit pour identifier la cause de la déconnexion.
Résolution
Remarque : la résolution suivante s'applique aux AMI Amazon Linux 1 optimisées pour Amazon ECS. Pour obtenir une résolution qui s'applique aux AMI Amazon Linux 2 optimisées pour Amazon ECS, reportez-vous à Comment résoudre les problèmes liés à un agent Amazon ECS déconnecté ?
Vérifier que le service Docker est en cours d'exécution sur l'instance de conteneur
1. Pour vérifier que le service Docker est en cours d'exécution sur l'instance de conteneur affectée, exécutez la commande suivante :
sudo service docker status
La sortie de commande ressemble à ce qui suit :
docker (pid 23013) is running...
Si le service Docker n'est pas en cours d'exécution ou qu'il est nécessaire de le redémarrer, exécutez la commande suivante :
sudo service docker restart
Remarque : ne saisissez pas cette commande lorsque le service est déjà en cours d'exécution. Tout d'abord, assurez-vous de définir l'instance de conteneur sur l'état Drainage. Ensuite, redémarrez le service Docker pour que les tâches existantes soient planifiées sur une autre instance de conteneur.
La sortie de la commande doit contenir les lignes suivantes :
Stopping docker: [ OK ] Starting docker: [ OK ]
Remarque : pour vérifier que le service Docker est en cours d'exécution après la commande de redémarrage, exécutez la commande sudo service docker status.
2. Pour démarrer l'agent ECS, exécutez la commande suivante :
sudo start ecs
Vérifier que l'agent de conteneur est en cours d'exécution sur l'instance de conteneur
Pour vérifier que l'agent de conteneur est en cours d'exécution sur l'instance de conteneur affectée, exécutez la commande suivante:
sudo status ecs
Si l'agent de conteneur n'est pas en cours d'exécution sur votre instance de conteneur, exécutez la commande suivante pour le démarrer :
sudo start ecs
La sortie de commande ressemble à ce qui suit :
ecs start/running, process 23403
Examiner les fichiers journaux de l'agent de conteneur et de Docker
Si vos instances de conteneur sont toujours déconnectées, consultez les fichiers journaux de l'hôte du conteneur pour l'agent de conteneur et Docker.
Pour générer les fichiers journaux de l'agent de conteneur et de Docker, exécutez les commandes suivantes :
sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-** sudo cat /var/log/docker
Remarque : pour collecter des informations de journal à partir de l'instance de conteneur, exécutez le collecteur de journaux Amazon ECS.
Vérifier que le profil d'instance IAM possède les autorisations nécessaires
Si l'agent de conteneur est toujours déconnecté, vérifiez que le profil d'instance IAM associé à l'instance de conteneur dispose des autorisations IAM nécessaires.
1. Connectez-vous à l'instance en utilisant SSH.
2. Pour afficher les métadonnées de l'instance dans le profil d'instance associé à l'instance, exécutez la commande suivante :
curl http://169.254.169.254/latest/meta-data/iam/info
La sortie de commande ressemble à ce qui suit :
{ "Code" : "Success", "LastUpdated" : "2019-06-29T15:47:03Z", "InstanceProfileArn" : "arn:aws:iam::1122334455:instance-profile/ecsInstanceRole", "InstanceProfileId" : "AIPAJ5WF3LZVY7PLUHV72" }
3. Vérifiez que le rôle IAM contient les autorisations appropriées pour vos instances de conteneur.
4. Pour vérifier des erreurs d'informations d'identification spécifiques avec l'agent de conteneur, exécutez la commande suivante pour vérifier le journal de l'agent de conteneur ECS pour obtenir une liste de journaux ECS :
cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**
Remarque : le journal de l'agent de conteneur change toutes les heures, et le suffixe change automatiquement pour refléter la date et l'heure actuelles. Mettez à jour la commande pour inclure la plage de dates et l'ID de journal pour lesquels le problème s'est produit.
Si l'agent de conteneur ne dispose pas des informations d'identification nécessaires, vous recevrez une erreur similaire à la suivante dans les journaux:
2019-06-29T16:10:09Z [ERROR] Unable to register as a container instance with ECS: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0b73e260-5088-4688-a425-6f35f1ef440f 2019-06-29T16:10:09Z [ERROR] Error re-registering: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0b73e260-5088-4688-a425-6f35f1ef440f
Aide supplémentaire
Si vous ne parvenez pas à identifier le problème lié à votre instance de conteneur ECS à partir de cette résolution, contactez le support Premium pour obtenir de l'aide. Tout d'abord, utilisez le collecteur de journaux Amazon ECS pour créer une archive des journaux de votre instance. Ensuite, joignez les journaux à un ticket d'assistance pour aider l'ingénieur du support à résoudre le problème.
Informations connexes
Résolution des problèmes liés à Amazon ECS
Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 5 jourslg...
- demandé il y a un anlg...
- demandé il y a 10 moislg...
- demandé il y a un anlg...
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 5 ans