Comment résoudre l'erreur « cannotpullcontainererror » pour mes tâches Amazon ECS sur Fargate ?

Dernière mise à jour : 24/08/2022

Je veux résoudre l'erreur « cannotpullcontainererror » afin de lancer mes tâches Amazon Elastic Container Service (Amazon ECS) sur AWS Fargate.

Brève description

L'erreur « cannotpullcontainererror » peut empêcher le lancement des tâches. Pour lancer une tâche Amazon ECS sur Fargate, vos configurations de mise en réseau Amazon Virtual Private Cloud (Amazon VPC) doivent permettre à votre infrastructure Amazon ECS d'accéder au référentiel où l'image est stockée. Sans mise en réseau appropriée, l'image ne peut pas être extraite par Amazon ECS sur Fargate et le démarrage du conteneur est impossible.

Résolution

Confirmer que la configuration de votre mise en réseau VPC permet à votre infrastructure Amazon ECS d'atteindre le référentiel d'images

Les tables de routage associées aux sous-réseaux dans lesquels votre tâche est créée doivent permettre à votre infrastructure Amazon ECS d'atteindre le point de terminaison du référentiel. Le point de terminaison peut être atteint par une passerelle Internet, une passerelle NAT ou des points de terminaison d'un VPC.

Si vous n'utilisez pas AWS PrivateLink, effectuez les étapes suivantes :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnezSous-réseaux.
  3. Sélectionnez le sous-réseau utilisé par votre tâche ECS Fargate.
  4. Choisissez l'onglet Route Table (Table de routage).
  5. Dans la colonne Destination, vérifiez que l'acheminement par défaut (0.0.0.0/0) de la table de routage permet l'accès Internet public. Cet accès peut se faire soit par une passerelle NAT, soit par une passerelle Internet.
    Important : la passerelle NAT ou la passerelle Internet doit être la cible de l'itinéraire par défaut. Pour des exemples de tables de routage, consultez la section Exemples d'options de routage. Si vous n'utilisez pas de passerelle NAT ou de passerelle Internet, assurez-vous que votre configuration personnalisée permet l'accès Internet public.

Si vous utilisez une passerelle Internet (sous-réseaux publics), vérifiez qu'une adresse IP publique est attribuée à la tâche. Pour ce faire, lancez votre tâche ECS avec l'option Attribuer automatiquement l'adresse IP publique définie sur Activée dans la section VPC et groupes de sécurité lorsque vous créez la tâche ou le service.

Si vous utilisez PrivateLink, vérifiez que les groupes de sécurité de vos points de terminaison d'un VPC permettent à l'infrastructure Fargate de les utiliser.

Remarque : les tâches Amazon ECS hébergées sur Fargate utilisant la version 1.3.0 ou antérieure exigent le point de terminaison d'un VPC com.amazonaws.region.ecr.dkr Amazon Elastic Container Registry (Amazon ECR) et le point de terminaison de la passerelle Amazon Simple Storage Service (Amazon S3). Les tâches Amazon ECS hébergées sur Fargate utilisant la version 1.4.0 ou une version ultérieure exigent à la fois les points de terminaison d'un VPC Amazon ECR com.amazonaws.region.ecr.dkr et com.amazonaws.region.ecr.api et le point de terminaison de la passerelle Amazon S3.

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnez Points de terminaison.
  3. Sélectionnez le point de terminaison dans la liste des points de terminaison, puis choisissez l'onglet Subnets (Sous-réseaux). Les points de terminaison d'un VPC com.amazonaws.region.ecr.dkr et com.amazonaws.region.ecr.api pour Amazon ECR s'afficheront dans la liste des sous-réseaux et seront associés aux sous-réseaux Fargate. Vous voyez également la passerelle Amazon S3 dans la liste des sous-réseaux.
    Remarque : si un sous-réseau n'est pas répertorié, choisissez Manage Subnets (Gérer les sous-réseaux). Ensuite, sélectionnez le sous-réseau en fonction de sa zone de disponibilité. Choisissez ensuite Modify Subnets (Modifier les sous-réseaux).
  4. Cliquez sur l'onglet Policy (Politique), puis confirmez que les exigences de politique sont respectées.
  5. Pour confirmer que le groupe de sécurité attaché aux points de terminaison d'un VPC com.amazonaws.region.ecr.api et com.amazonaws.region.ecr.dkr autorise les connexions entrantes sur le port 443 à partir des tâches Amazon ECS pour Fargate, sélectionnez le point de terminaison dans la liste des points de terminaison.
  6. Choisissez l'onglet Groupes de sécurité.
  7. Pour ID de groupe, choisissez l'ID de groupe de sécurité.
  8. Choisissez l'onglet Règles entrantes, puis confirmez que vous pouvez voir la règle qui autorise 443 connexions à partir de vos tâches ECS sur Fargate.

Vérifier l'ensemble d'options DHCP VPC

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, choisissez Votre VPC.
  3. Sélectionnez le VPC qui contient votre tâche Fargate.
  4. Sous l'onglet Informations, notez le paramètre défini pour l'ensemble d'options DHCP.
  5. Dans le volet de navigation, choisissez Ensembles d'options DHCP.
  6. Sélectionnez l'ensemble d'options DHCP que vous avez noté à l'étape 4.
  7. Choisissez Actions, puis Afficher les informations.
  8. Vérifiez que Serveurs de nom de domaine est défini sur AmazonProvidedDNS. S'il n'est pas défini sur AmazonProvidedDNS, configurez le transfert DNS conditionnel.

Vérification des autorisations du rôle d'exécution de la tâche

  1. Ouvrez la console IAM. Pour confirmer que le groupe de sécurité attaché aux points de terminaison d'un VPC com.amazonaws.region.ecr.api et com.amazonaws.region.ecr.dkr autorise les connexions entrantes sur le port 443 à partir des tâches Amazon ECS pour Fargate, sélectionnez le point de terminaison dans la liste des points de terminaison
  2. Dans le panneau de navigation, choisissez Roles (Rôles).
  3. Sélectionnez le rôle d'exécution de tâche utilisé par vos tâches Fargate.
  4. Vérifiez que le rôle d'exécution de la tâche dispose des autorisations nécessaires pour extraire une image d'Amazon ECR.

Vérifier que l'image existe

  1. Ouvrez la console Amazon ECR.
  2. Sélectionnez le référentiel Amazon ECR dans lequel votre tâche Fargate devrait extraire l'image.
  3. Vérifiez que l'URI et la balise dans Amazon ECR sont les mêmes que celles spécifiées dans la définition de la tâche.

Remarque : si vous n'utilisez pas Amazon ECR, assurez-vous que vous voyez image:tag dans le référentiel d'images spécifié.


Cet article vous a-t-il été utile ?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?