我有一个 EC2 注册到 ECS 集群,可以在其上运行任务。最初我选择了awsvpc
网络模式,所以每个任务(容器)都有自己的 ENI(IP)。但我在https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI遇到了限制
所以我将网络模式更改为
桥接
将使用桥接网络将任务限制为 10,因为从上面的屏幕截图中每个 ENI 的私有 IP 限制为 10。我不知道 using 是否bridge
为任务分配了私有 IP。我检查ifconfig
了 EC2 主机上的输出,但它返回一长串条目(有些带有私有 IP,有些没有)
TL/DR:桥接网络的工作方式是为任务分配一个端口号并将其公开给实例的主 ENI。所以你不会达到任何 ENI/IP 限制。如果您仍然渴望利用 AWS VPC 网络模式的优势,您可能正在探索 Trunk ENI 解决方案,该解决方案允许您创建虚拟 ENI 以克服您指出的 ENI 数量限制。
全文:https ://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/networking-networkmode.html
另外,你考虑过Fargate吗?它隐藏了所有这些以及更多。