Ответ 1
Публичный IP является обязательным для Farget. Для получения дополнительной информации https://github.com/aws/amazon-ecs-agent/issues/1128
Я получаю эту ошибку при запуске задачи в моем кластере Amazon Fargate. Кто-нибудь видел, сталкивался с этим раньше?
Публичный IP является обязательным для Farget. Для получения дополнительной информации https://github.com/aws/amazon-ecs-agent/issues/1128
Пойдите в документы для ответа на этот.
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_cannot_pull_image.html
Поскольку вы сталкиваетесь с ошибкой 500
, я бы прислушался к совету первого описания ошибки: "Превышено время ожидания соединения":
Когда запускается задача Fargate, ее эластичный сетевой интерфейс требует маршрута к Интернету для получения изображений контейнера. Если при запуске задачи вы получаете сообщение об ошибке, аналогичное приведенному ниже, это связано с тем, что маршрута к Интернету не существует:
CannotPullContainerError: API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection
Чтобы решить эту проблему, вы можете:
Для задач в общедоступных подсетях укажите ВКЛЮЧЕНО для автоматического назначения общего IP-адреса при запуске задачи...
Для задач в частных подсетях укажите ОТКЛЮЧЕНО для автоматического назначения общего IP-адреса при запуске задачи и настройте шлюз NAT в вашем VPC для маршрутизации запросов в Интернет...
Если вы столкнулись с какими-либо другими проблемами, связанными с тем, что задачи ECS не запускаются или проявляют странное поведение при запуске, проверьте полный список разделов по устранению неполадок ECS.
Я столкнулся с подобной ошибкой (404
вместо 500
), однако, задание показало, что оно запущено, хотя в подробном состоянии указана ошибка.
Оказывается, что роль, связанная с задачей (в том же случае, что и экземпляр EC2, на котором она выполнялась), не может быть принята ecs-заданиями. Добавление следующего заявления о доверительных отношениях к роли решило проблему:
{
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
Для получения дополнительной информации см. конкретную страницу в ролях выполнения задач.
Эта ошибка возникает, когда контейнер не может вытащить контейнер из реестра.
Вы должны назначить Public Ip своей службе, вы можете сделать это во время определения службы, но, насколько я знаю, вы не можете обновить службу из меню обновления.
Если вы используете ECS в частном VPC без доступа к Интернету, сначала установите конечную точку VPC для ECR и S3.
Убедитесь, что ваша подсеть имеет доступ к Интернету. В моем случае задача fargate была развернута в частной подсети. В то время как в этой подсети настроен шлюз nat, в общедоступной подсети не было маршрута к интернет-шлюзу.