【问题标题】:ECS using bridge network mode unable to access the internetECS使用桥接网络模式无法上网
【发布时间】:2019-06-15 19:43:28
【问题描述】:

我有一个 Java 应用程序在 ECS 上的 Docker 容器中运行。最近出现了一个新的要求,它可以访问外部互联网。这在我们的开发环境中不是问题,但是一旦在生产环境中,Docker 实例突然无法访问互联网。

经过一番挖掘后,我将网络模式从“桥接”更改为“主机”,从而解决了问题。问题是,我不想使用桥接模式。

我想不通的是为什么环境之间会有所不同..它们的任务定义等完全相同。

我已经检查了安全组。事实上,我已经检查了主机 EC2 可以访问互联网.. 可以。无论如何,它在“主机”模式下工作的事实消除了所有这些。此外,EC2 实例是从与其他环境相同的 AMI 生成的。

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs


    【解决方案1】:

    您能否检查一下您是否将 NAT-Gateway (VPC -> NAT-Gateway) 分配给与 EC2 实例(私有子网)相同的子网,以及分配给公共子网的 Internet-Gateway?

    您的私有子网的路由表应如下所示:

    | Destination   | Target      |
    | 10.20.0.0/16  | local       |
    | 0.0.0.0/0     | nat-00d.... | 
    

    您的公共子网的路由表应如下所示:

    | Destination   | Target      |
    | 10.20.0.0/16  | local       |
    | 0.0.0.0/0     | igw-046.... | 
    

    .. 假设 10.20.8.0/21 是您的公共子网,而 10.20.16.0/21 是您的私有子网。

    那么你应该在新娘网络模式下的 ECS 服务上有互联网连接。

    【讨论】:

    • 您好,感谢您的回复。所以是的,我在位于私有子网中的 EC2 中运行了上述容器,我们将它们称为 Subnet1 和 Subnet2。 Subnet1 和 Subnet2 都有 0.0.0.0/0 路由到 NAT 网关。所有公共子网都有 0.0.0.0/0 路由到 IGW。 NATS 都处于活动状态。
    • 我的私有子网是 10.0.0.0/19 和 10.0.32.0/19,公共 10.0.128.0/20、10.0.144.0/20 和 10.0.160.0/20。路由表如下所示: Private 1: 10.0.0.0/16 -> local 0.0.0.0/0 -> NAT Private 2: 10.0.0.0/16 -> local 0.0.0.0/0 -> NAT Public: 10.0.0.0 /16 -> local 0.0.0.0/0 -> IGW 相同的设置在我们的开发环境中工作。
    • 我可以看到 dev 和 prod 设置之间的唯一区别是我们删除了 prod 中的默认 VPC。这有什么影响吗?
    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 2020-01-12
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多