Comment résoudre l’erreur « CannotPullContainerError : Error response from daemon : Get https://registry-name/ : net/http : request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) » dans Amazon ECS ?

Dernière mise à jour : 10/06/2020

Je lance une tâche dans Amazon Elastic Container Service (Amazon ECS). Puis, je reçois l’erreur suivante : « CannotPullContainerError : Error response from daemon : Get https://registry-name/ : net/http : request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). »

Comment résoudre cette erreur ?

Brève description

Vous pouvez recevoir cette erreur lorsqu'une tâche ne parvient pas à extraire une image en raison d'une configuration incorrecte du réseau ou d'une connexion intermittente.

La résolution suivante inclut les étapes permettant de résoudre l’erreur provoquée par un réseau qui n’est pas configuré correctement.

Résolution

Choisissez une solution basée sur votre type de lancement : Amazon Elastic Compute Cloud (Amazon EC2) ou AWS Fargate.

Type de lancement Amazon EC2

  • Si votre instance de conteneur se trouve dans un sous-réseau privé, vérifiez que votre sous-réseau dispose d’une passerelle NAT dans un tableau de routage.
    Remarque : au lieu d’une passerelle NAT, vous pouvez utiliser AWS PrivateLink ou un proxy HTTP. Pour éviter les erreurs, veillez à configurer correctement AWS PrivateLink ou le proxy HTTP.
  • Si votre instance de conteneur se trouve dans un sous-réseau public, vérifiez que votre instance possède une adresse IP publique. Vous pouvez modifier le comportement de l’adresse IPv4 publique du sous-réseau pour attribuer des adresses IP publiques aux instances de conteneur lors du lancement.
  • Si vous utilisez un DNS fourni par Amazon dans votre Amazon Virtual Private Cloud (Amazon VPC), vérifiez que le groupe de sécurité attaché à votre instance dispose d’un accès sortant autorisé pour HTTPS (port 443).
  • Quand il s’agit d’un DNS personnalisé, vérifiez que vous disposez d’un accès sortant autorisé pour DNS (UDP et TCP) sur le port 53 et HTTPS sur le port 443.
  • Vérifiez que vos règles de contrôle d'accès réseau (ACL réseau) ne bloquent pas le trafic vers le registre.

Pour les types de lancements Fargate

  • Vérifiez que le sous-réseau utilisé pour exécuter une tâche possède une route vers une passerelle Internet ou une passerelle NAT dans un tableau de routage.
    Remarque : Au lieu d’une passerelle Internet ou NAT, vous pouvez utiliser AWS PrivateLink. Pour éviter les erreurs, veillez à configurer correctement AWS PrivateLink ou le proxy HTTP.
  • Si vous lancez des tâches dans un sous-réseau public, choisissez ACTIVÉ pour Attribuer automatiquement l'adresse IP publique lorsque vous lancez une tâche dans la console Amazon EC2. Cette action permet à votre tâche d'avoir un accès réseau sortant pour extraire une image.
  • Si vous utilisez un DNS fourni par Amazon dans votre Amazon VPC, vérifiez que le groupe de sécurité attaché à l’instance dispose d’un accès sortant autorisé pour HTTPS (port 443).
  • Quand il s’agit d’un DNS personnalisé, vérifiez que vous disposez d’un accès sortant autorisé pour DNS (UDP et TCP) sur le port 53 et l’accès HTTPS sur le port 443.
  • Vérifiez que vos règles ACL réseau ne bloquent pas le trafic vers le registre.

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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?