[英]ECS service cannot pull from ECR
ECS Fargate(ver 1.4.0)服务创建失败并出现以下错误
Resource initilization error unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth
Request error caused by post https://api.ecr.us-XX.amazon.aws.com timeout
我检查过的东西
我遇到了同样的问题,(认为)我进行了同样的检查,这个错误让我发疯。
我实际上通过意识到我的 ECS 任务安全组仅限于我的 VPC 的 CIDR 块来解决它,即使任务将在私有子网中它需要完全开放的出口和入口访问,以便它可以访问 ECR,因为它通过外部互联网.
所以不是这样的:
ingress {
protocol = "tcp"
from_port = var.container_port
to_port = var.container_port
cidr_blocks = [var.vpc_cidr_block] #or cap later from ALB and ILB
}
您应该让 SG 处理打开的任务,例如:
ingress {
protocol = "tcp"
from_port = var.container_port
to_port = var.container_port
cidr_blocks = ["0.0.0.0/0"]
}
这适用于出口和入口。 事实上,在我添加这个之后,我删除了 VPC 端点,它仍然有效,甚至不需要它们。 抓取图像的角色仍然是必需的,尽管我只是使用了 AWS 管理AmazonECSTaskExecutionRolePolicy
。
发现问题了! https://aws.amazon.com/blogs/compute/setting-up-aws-privatelink-for-amazon-ecs-and-amazon-ecr/这个博客解释了如何配置,我忘了配置另外一件事:私有 DNS。我必须在 ECR(DKR 和 API)和 CloudWatch 上启用它,以便它可以通过 FQDN 访问 put 服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.