mug*_*gzi 8 amazon-ec2 amazon-web-services amazon-ecs aws-fargate
我正在使用AWS ECS来托管我的服务.当我尝试使用fargate定义任务时,我遇到了以下问题.
CannotPullContainerError:API错误(500):获取https://xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/v2/:net/http:请求在等待连接时被取消(等待标题时超出Client.Timeout )
此外,我还授予了在IAM用户中访问ECR的完全权限.请帮我解决这个问题.
小智 13
看看这里:https://github.com/aws/amazon-ecs-agent/issues/1128
特别是samuelkarp的评论
您在下面看到的错误通常是由于缺少用于提取图像的互联网访问权限.图像拉取发生在Task使用的网络接口上,因此共享安全组和路由规则.
请检查您的配置以获取以下信息:
如果要启动没有公共IP的任务,请确保子网上的路由表具有"0.0.0.0/0"到NAT网关或NAT实例以确保访问Internet.如果您的路由表具有Internet网关,则其功能类似于防火墙并阻止建立连接.如果要使用公共IP启动任务,请确保子网上的路由表具有"0.0.0.0/0"到Internet网关,以确保您能够成功使用公共IP进行入口流量.验证任务的安全组规则是否允许出站访问.此处的默认值通常为All Traffic to 0.0.0.0/0.如果这些网络更改都不适用于您,或者它们无法解决您的问题,请告知我们,以便我们进一步提供帮助.
eni*_*njo 11
缺乏创建工作 NAT 网关的规范。在GitHub 问题上,亚马逊技术人员不断重复您“只”需要私有 IP + NAT,但事实并非如此。我与这个自己奋斗了很多,但终于得到了它正常工作,而无需使用公共IP为我Fargate服务。
要让 Fargate 服务在没有公共 IP 的情况下访问互联网,您需要设置一个具有 2 个子网的 VPC:
您可以通过两种方式创建这样一个VPC:前往Services> VPC> VPC Dashboard,点击Launch VPC Wizard和选择"VPC with Public and Private Subnets"; 或手动:
注意:以下所有步骤都在Services>VPC
Your VPCs和Create a VPCSubnets和Create subnet2次
private 子网
public 子网
Internet Gateways和Create internet gateway
Internet Gateway, Actions,Attach to VPC并将其附加到焦点 VPCNAT Gateways和Create NAT Gateway
public子网Create New EIP 或者使用现有的,因为你有一个AvailableRoute Tables和Create route table2次
private 路由表
Routes 底部的标签, Edit routesAdd route, 目的地: 0.0.0.0/0, 目标是之前创建的 NAT 网关和Save routesActions并且Set Main Route Table(如果还没有)public 路由表
Routes 底部的标签, Edit routesAdd route, 目标: 0.0.0.0/0, 目标是之前创建的 Internet 网关和Save routesSubnet Associations 底部的标签, Edit subnet associationspublic子网,Save您放置在public子网中的每个服务都将具有双向Internet 访问权限,您放置在private子网中的每个服务都只能访问传出Internet(是的,private没有公共 IP的子网中的 Fargate 和 EC2 服务将具有 Internet 访问权限)。
| 归档时间: |
|
| 查看次数: |
2516 次 |
| 最近记录: |