amazon-web-services - AWS Fargate 集群无法使用 NAT 和 Internet 网关访问 Internet
问题描述
我正在尝试将容器部署到 AWS 上的私有网络 Fargate 集群。我的单个 VPC 上确实有一个 Internet 网关:
而且我确实在我的集群/服务所在的同一 VPC 中为该特定子网提供了一个 NAT 网关:
该子网的路由似乎也可以:
并且服务的安全组不会阻止任何传入连接:
但是我的容器甚至没有以臭名昭著的异常开始:CannotPullContainerError:来自守护进程的错误响应:Get https://registry-name/:net/http: request cancelled while waiting for connection (Client.Timeout exceeded while waiting headers)为什么? 谢谢。
解决方案
您没有将子网配置为使用 NAT 网关。您的路由表当前将流量直接发送到 IGW,这使子网成为公共子网,而不是私有子网,这意味着该子网中的任何内容都需要分配一个公共 IP。与其他资源位于同一子网中的 NAT 网关不会神奇地为这些资源提供 Internet 访问权限,您必须适当地配置路由表。
您的网络需要这样配置:
公共子网:
- 附上IGW
- NAT网关
- 需要从 Internet 访问的任何其他公共资源,例如公共负载均衡器。
私有子网:
- 到公有子网中 NAT 网关的路由。没有到 IGW 的路由。
推荐阅读
- angular - 更新记录功能不更新 Angular8 dotnet Core 3 应用程序
- c# - 使用 foreach (C#) 未正确填充 ObseservableCollection
- swift - Mac Catalyst textview 第一响应者
- flutter - Flutter 中的可搜索微调器
- azure - Azure GPU 密集型任务最佳解决方案
- openshift - 如何在线使用本地 docker 镜像和 openshift?
- mysql - 如何添加可以为空的一对多 FK
- docusignapi - DocuSign API - JWT 令牌生成
- ruby-on-rails - 为用户添加头像
- php - 只替换树枝中的一个嵌套块