Amazon ECS 网络流量和端口

Gle*_*ech 2 amazon-web-services amazon-ecs

我创建了一个四子网 VPC,其中两个子网是私有的,两个是公共的。私有子网中的实例只有私有 IP,并通过 IGW/NAT GW 到达互联网。

我可以成功创建跨公有子网的 ECS 集群,但是当我在后端子网中创建集群时,集群实例无法在集群中注册。

我怀疑网络问题,我正在使用 Flowlogs 进行调试。同时,我希望有人能够阐明需要打开哪些端口,或涉及 ECS 集群管理的其他配置。

Tim*_*Tim 5

我怀疑这与端口有关,因为集群中的事物需要通信是相当标准的。下面的两篇文章应该可以为您解答这个问题。在我看来,可能需要以下内容

  • Amazon ECS 代理端口 51678 和 51679(协议未指定)
  • TCP 2376 和 2377(码头工人)
  • TCP/UDP 7946(码头工人)
  • UDP 4789(码头工人)
  • 临时端口 49153 到 65535(协议未指定)

请注意,我对 ECS 知之甚少,只是简单地进行了几次 Google 搜索并阅读了文档。ECS 基于 Docker,所以我看了看。需要进行一些实验。

Digital Ocean 有一篇关于Docker Ports的好文章。

用于安全 Docker 客户端通信的 TCP 端口 2376。Docker Machine 需要此端口才能工作。Docker Machine 用于编排 Docker 主机。TCP 端口 2377。此端口用于 Docker Swarm 或集群的节点之间的通信。它只需要在管理器节点上打开。TCP 和 UDP 端口 7946 用于节点之间的通信(容器网络发现)。UDP 端口 4789 用于覆盖网络流量(容器入口网络)。

然后亚马逊文档提到了一些相同的端口。

默认的临时端口范围是 49153 到 65535,此范围用于 1.6.0 之前的 Docker 版本。对于 Docker 1.6.0 及更高版本,Docker 守护进程尝试从 /proc/sys/net/ipv4/ip_local_port_range 读取临时端口范围;如果此内核参数不可用,则使用默认的临时端口范围。您不应尝试在临时端口范围内指定主机端口,因为这些端口是为自动分配保留的。通常,低于 32768 的端口不在临时端口范围内。

SSH 的默认保留端口为 22、Docker 端口 2375 和 2376 以及 Amazon ECS 容器代理端口 51678 和 51679。之前在运行任务中指定的任何主机端口也会在任务运行时(在任务之后)保留停止,主机端口被释放。 当前保留端口显示在DescribeContainerInstances输出的剩余资源中,一个容器实例一次最多可以有100个保留端口,包括默认保留端口(自动分配的端口不计入100 个保留端口限制)。

请注意,根据维基百科和以下临时端口范围的评论可能需要扩展。