Агент ECS не может успешно извлечь изображение из ECR
У меня есть управляемый ECS экземпляр EC2, работающий в VPC (в одной из частных подсетей). При попытке запустить задачу в этом случае кажется, что она не может извлечь изображение. Насколько я могу судить по документации, агенту ECS не требуется специальной конфигурации для извлечения образа из репозитория.
Глядя на логи Docker, я неоднократно вижу следующее:
level=error msg="Download failed, retrying: dial tcp 54.231.17.81:443: i/o timeout"
Логи ecs-агента неоднократно показывают мне, что изображение не загружается:
Pulling image module="TaskEngine" image="REDACTED.dkr.ecr.us-east-1.amazonaws.com/REDACTED:latest" status="Retrying in 19 seconds"
В конечном итоге он пытается запустить образ, но, очевидно, не удается и выходит. Дайте мне сообщение ниже на вкладке Задачи кластера:
STOPPED (Essential container in task exited)
Эта ошибка произошла как с AMI amzn-ami-2016.03.e, так и с amzn-ami-2016.03.d
Есть ли какие-то особые правила конфигурации или сети, которые мне нужно применить, чтобы можно было извлечь из ECR?
Любая помощь здесь будет принята с благодарностью.
Как примечание: у экземпляра есть доступ к Интернету (pinging google.com работает нормально), и когда я пытаюсь извлечь изображение из Docker Hub, он также работает нормально.
0 ответов
Для загрузки изображения из ECR экземпляру контейнера требуется доступ к конечным точкам ECR/S3.
Если ваша подсеть является частной, вы должны либо использовать функцию PrivateLink, либо использовать шлюз NAT для доступа к конечным точкам ECR.
Если вы решите использовать PrivateLink, это включает в себя:
- Создание конечной точки VPC для Amazon ECR
- Создание конечной точки шлюза Amazon S3
Если вы решите использовать NatGateway, перенаправьте весь трафик на диапазоны IP-адресов AWG NATway и белого списка.
Ссылка Ссылка: https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html