在公共子网中运行的Fargate任务无法拉取容器镜像,出现CannotPullContainerError。

0

【以下的问题经过翻译处理】 你好,我有一个用于Fargate集群的任务定义,镜像位于ECR上,但由于某些原因它无法从ECR拉取容器镜像...

由于之前已经有过这样的问题,因此我参考了以下链接进行故障排除:

从我了解的情况来看,有两个关键因素:

  1. 从任务访问ECR的角色访问权限
  2. 公共子网的互联网访问权限

我的任务具有以下定义:

  • ecsTaskExecutionRole 具有 -> AmazonECSTaskExecutionRolePolicy -> 分配了以下操作

"Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*"

  • 使用 awsvpc 网络模式
  • 在定义中使用了正确的镜像URI
  • 它正在使用映射到互联网网关的公共子网
  • 为任务的 ENI 分配了公共IP地址

我还遗漏了什么其他问题吗?

附上一些图像作为参考。

profile picture
EXPERTE
gefragt vor 6 Monaten62 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 我找到了答案,任务定义引用了“LATEST”镜像标签而非版本号。看看能否将镜像推送到ECR并将“Latest”作为标签,这样每次更新容器时就不需要更新任务定义了。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen