154 votes

Erreur AWS ECS lors de l'exécution de la tâche: Aucune instance de conteneur n'a été trouvée dans votre cluster.

Im essayant de déployer un docker conteneur de l'image pour l' AWS l'aide ECS, mais l'instance EC2 est pas en cours de création. J'ai écumé le net à la recherche d'une explication des raisons pour lesquelles je reçois le message d'erreur suivant:

"Une erreur du client (InvalidParameterException) s'est produite lors de l'appel de la RunTask opération: Pas de Conteneur des Instances ont été trouvés dans votre cluster."

Voici mes étapes:

1. Poussé un docker image DE Ubuntu à mon Amazon ECS repo.

2. Enregistré une ECS Définition de Tâche:

aws ecs register-task-definition --cli-input-json file://path/to/my-task.json 

3. Exécuté la tâche:

aws ecs run-task --task-definition my-task

Pourtant, il échoue.

Voici ma tâche:

{
  "family": "my-task",
  "containerDefinitions": [
    {
        "environment": [],
        "name": "my-container",
        "image": "my-namespace/my-image",
        "cpu": 10,
        "memory": 500,
        "portMappings": [
            {
                "containerPort": 8080,
                "hostPort": 80
            }
        ],
        "entryPoint": [
            "java",
            "-jar",
            "my-jar.jar"
        ],
        "essential": true
    }
  ]
}

J'ai aussi essayé d'utiliser la console de gestion de configuration d'un cluster et de services, mais je reçois le même message d'erreur. Comment dois-je configurer le cluster d'avoir des instances ec2, et quel type de conteneur cas dois-je utiliser? Je pensais que l'ensemble de ce processus a été de créer des instances EC2 pour commencer!!

210voto

cosbor11 Points 3905

J'ai compris cela, après quelques heures d'investigation. Amazon, si vous écoutez, vous devez l'indiquer quelque part dans votre console de gestion lors de la création d'un cluster ou d'ajouter des instances de cluster:

"Avant d'ajouter ECS cas d'un cluster, vous devez d'abord aller à l'EC2 de la Console de Gestion et de créer ecs-optimized des cas avec un rôle IAM a l' AmazonEC2ContainerServiceforEC2Role politique"ci-joint

Voici le galimatias:

1. Accédez à votre tableau de bord EC2, et cliquez sur l' Launch Instance bouton.

2. En vertu de l' Community AMIs, Recherche pour l' ecs-optimized, et de sélectionner celle qui convient le mieux aux besoins de votre projet. Tout va fonctionner. Cliquez sur suivant.

3. Lorsque vous arrivez à Configurer les Détails de l'Instance, cliquez sur l' create new IAM role link et de créer un nouveau rôle appelés ecsInstanceRole.

4. Fixez l' AmazonEC2ContainerServiceforEC2Role politique de pour ce rôle.

5. Ensuite, terminer la configuration de votre ECS Instance.
REMARQUE: Si vous créez un serveur web que vous souhaitez créer un securityGroup pour permettre l'accès au port 80.

Après quelques minutes, lorsque l'instance est initialisé et en cours d'exécution, vous pouvez actualiser l'ECS onglet Instances sur vous tentez d'ajouter des instances de trop.

47voto

P_W999 Points 502

Actuellement, Amazon AWS interface web peut automatiquement créer des instances avec le bon AMI et le nom correct de sorte qu'il va l'inscrire à la bonne cluster.

Même si toutes les instances ont été créées par Amazon avec les paramètres corrects à mon cas de ne pas s'inscrire. Sur le Amazon AWS forums , j'ai trouvé un indice. Il s'avère que votre clusters ont besoin de l'accès à internet et si votre privé VPC ne dispose pas d'une passerelle internet, les grappes ne sera pas en mesure de se connecter.

Le correctif

Dans la VPC tableau de bord, vous devez créer une nouvelle Passerelle Internet et le connecter à la VPC utilisé par le cluster. Une fois fixé, vous devez mettre à jour (ou la création) de la table de routage pour la VPC et les ajouter en tant que dernière ligne

0.0.0.0/0 igw-24b16740  

Où igw-24b16740 est le nom de votre fraîchement créé passerelle internet.

12voto

user3716835 Points 120

D'autres ont suggéré des contrôles

1) En sélectionnant l'a suggéré ami qui a été spécifié pour la région résolu mon problème. Pour trouver les ami - cochez cette url http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

2) Par defaault toutes les instances ec2 sont ajoutés au cluster par défaut . Si le nom de la grappe aussi des questions.

Voir le point 10 ici http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

Plus d'informations sont disponibles dans ce fil https://forums.aws.amazon.com/thread.jspa?threadID=189513

1voto

Ben Points 1

Le vrai problème est le manque de permission. Tant que vous créez et attribuez un rôle IAM avec l'autorisation AmazonEC2ContainerServiceforEC2Role, le problème disparaît.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X