在公共子网中运行的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
エキスパート
質問済み 5ヶ月前59ビュー
1回答
0

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

profile picture
エキスパート
回答済み 5ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ