Pourquoi mon Amazon ECS sur une instance Amazon EC2 ne parvient-il pas à rejoindre le cluster ?

Lecture de 6 minute(s)
0

Je n’arrive pas à utiliser un cluster Amazon Elastic Container Service (Amazon ECS) pour enregistrer mon instance Amazon Elastic Compute Cloud (Amazon EC2).

Résolution

Prérequis

Avant d’effectuer les étapes manuelles suivantes, utilisez le dossier d’exploitation AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager pour vérifier automatiquement la présence de problèmes potentiels.

Le dossier d’exploitation AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager permet de résoudre automatiquement les problèmes courants qui empêchent votre instance Amazon EC2 de s’enregistrer ou de rejoindre un cluster. Le dossier d’exploitation vérifie les exigences suivantes :

Remarque : veillez à utiliser le dossier d’exploitation AWSSupport-TroubleshootECSContainerInstance dans la même région AWS où se trouvent votre cluster ECS et votre instance EC2.

Si la sortie du dossier d’exploitation ne fournit pas de recommandations, utilisez les solutions suivantes pour résoudre manuellement ce problème.

Vérifiez l’état de l’agent Amazon ECS sur l’instance Amazon Linux 2

Pour vérifier si l’agent de conteneur Amazon ECS s’exécute sur l’instance, exécutez la commande suivante :

sudo systemctl status ecs

Si l’agent de conteneur ne s’exécute pas sur votre instance, exécutez la commande suivante pour le démarrer :

sudo systemctl start ecs

La sortie de la commande doit être similaire à l’exemple de sortie de commande suivant :

ecs start/running, process 23403

Vérifier les configurations de lancement

Si l’instance que vous lancez fait partie d’un groupe AWS Application Auto Scaling, vérifiez que la configuration de lancement de ce groupe est bien bonne. Pour plus d’informations, consultez l’étape Créer une nouvelle configuration de lancement dans Actualiser un cluster de l’instance de conteneur Amazon ECS grâce à une nouvelle Amazon Machine Image (AMI).

Vérifier l’Amazon Machine Image (AMI) de votre instance

Si l’AMI que vous utilisez pour l’instance EC2 est une AMI copiée ou personnalisée, vérifiez que l’instance répond bien aux exigences suivantes :

Ces exigences sont préconfigurées sur l’AMI optimisée pour Amazon ECS. Il est recommandé d’utiliser une AMI optimisée pour Amazon ECS, sauf si votre application requiert une version qui n’est pas encore disponible dans cette AMI.

Vérifiez si les données utilisateur d’une instance contiennent les bonnes informations sur le cluster

Pour vérifier si les données utilisateur d’une instance contiennent les bonnes informations sur le cluster, exécutez la commande suivante :

#!/bin/bash  
echo ECS_CLUSTER=<cluster-name> >> /etc/ecs/ecs.config

Vérifier les fichiers journaux

Si le problème persiste, utilisez le collecteur de journaux Amazon ECS pour collecter les journaux. Passez ensuite en revue les journaux pour en trouver la cause. Vous pouvez également consulter les fichiers journaux sur l’hôte du conteneur pour l’agent de conteneur et Docker.

Pour consulter 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

Corriger des erreurs courantes

Erreur : Lancement d’une nouvelle instance EC2. Raison du statut : Ce compte est actuellement bloqué et n’est pas reconnu comme un compte valide. Veuillez contacter aws-verification@amazon.com si vous avez des questions. Launching EC2 instance failed.

Cette erreur se produit lorsque votre compte est bloqué et qu’Amazon ne le reconnaît pas. Pour débloquer votre compte, envoyez un e-mail à l’adresse aws-verification@amazon.com. Assurez-vous de préciser dans votre e-mail que vous souhaitez que votre compte soit débloqué.

Error: re-registering: ClientException (Exception du client) : L’instance de conteneur 12345678910xxxxxxxxxxxx est inactive.\n\tstatus code : 400, numéro de demande : 012345678a-012345b-012ab-0a1-9f645f4s5c12" module=agent.go

Cette erreur se produit lorsque l’agent ECS ne peut pas utiliser le cluster ECS pour enregistrer l’instance de conteneur EC2, car l’instance EC2 est inactive. Cette erreur est liée à l’application qui s’exécute sur l’instance. Pour comprendre la cause de l’erreur, consultez l’application. Si l’erreur persiste, consultez les journaux de l’agent ECS.

Erreur : Few instances are able to join the cluster but with the same configurations, other instance are not able to join the cluster.

Cette erreur se produit en raison d’une exception ThrottlingException qui survient lorsqu’un appel d’API spécifique dépasse la limite de débit. Pour corriger cette erreur, augmentez la limite de taux au niveau du compte. Vérifiez les API, telles que RegisterTargets et RegisterContainerInstance.

Erreur : After changing the instance type, new instances are unable to join the cluster.

Cette erreur se produit lorsque l’agent ECS est bloqué dans l’état En attente et que vous ne pouvez pas modifier le type d’instance. Pour modifier le type d’instance dans Amazon ECS, procédez comme suit :

  1. Supprimez l’instance de conteneur.
  2. Lancez une nouvelle instance de conteneur ayant la nouvelle taille d’instance.
    Remarque : il est recommandé d’utiliser une AMI Amazon Linux 2 optimisée pour Amazon ECS pour lancer l’instance de votre cluster.

Vous pouvez également créer une nouvelle configuration de lancement. Ensuite, mettez à jour la configuration de lancement dans le groupe Auto Scaling.

Pour plus d’informations, consultez Comment faire pour modifier mon type d’instance de conteneur dans Amazon ECS ?

Erreur : Impossible de s’enregistrer en tant qu’instance de conteneur auprès d’ECS : AccessDeniedException (Exception d’accès refusé) : L’utilisateur : arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/I-00aa11bb22cc33def n’est pas autorisé à exécuter : ecs:RegisterContainerInstance sur la ressource : arn:aws:ecs:us-east- 1:1122334455:cluster/exampleCluster. Code d’état : 400, numéro de demande : 0a123456-7899-10101-a987-6543210deff

-ou-

Erreur : 2019-06-29T16:10:09Z [ERROR] Erreur lors de la réinscription : AccessDeniedException (Exception d’accès refusé) : L’utilisateur : arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/I-0052b2e858b1891ef n’est pas autorisé à exécuter : ecs:RegisterContainerInstance sur la ressource : arn:aws:ecs:us-east- 1:1122334455:Cluster/exampleCluster code d’état : 400, numéro de demande : 0a123456-7899-10101-a987-123456pqrs

Ces erreurs se produisent en raison d’autorisations IAM manquantes. Pour corriger ces erreurs, vous devez créer un rôle IAM d’instance de conteneur.

Exécutez ensuite le dossier d’exploitation AWSSupport-TroubleshootECSContainerInstance pour déterminer les autorisations manquantes dans le rôle d’instance de conteneur.

Informations connexes

Création d’un cloud privé virtuel

Pourquoi mes instances de conteneur Amazon ECS avec des AMI Amazon Linux 1 sont-elles déconnectées ?

Résolution des problèmes avec Amazon ECS

Création de vos propres runbooks