增加 AWS ECS 任务定义保留端口限制
Increasing the AWS ECS Task Definition reserved ports limit
我正在尝试使用 aws 的 ecs 服务设置一个 docker 容器。我想在主机上保留端口 30000 - 60000,并将这些端口映射到容器上的 30000 - 60000。然而,AWS 文档指出主机上只能保留 100 个端口:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
谁能解释为什么有 limit/suggest 解决方法?
我很确定 100 个端口的限制是由于 。
Docker 为每个映射端口启动一个 Go 进程,它将使用 4-6MB 的私有内存。因此在 100 个端口,Docker 进程将消耗大约 500MB 的内存。
如果您尝试将所有 30000 - 60000 端口映射到一个容器,您将需要大约 150GB 的内存。如果您同时需要 UDP 和 TCP,则需要 300GB。
如果您有使用那么多端口,那么您需要开始考虑使用--net=host
, bridging or mapping interfaces directly into a container. This is unlikely to be supported by ECS (On EC2, I had to take the "real" MAC address from a VPC interface and put it on the containers interface)。
我正在尝试使用 aws 的 ecs 服务设置一个 docker 容器。我想在主机上保留端口 30000 - 60000,并将这些端口映射到容器上的 30000 - 60000。然而,AWS 文档指出主机上只能保留 100 个端口:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
谁能解释为什么有 limit/suggest 解决方法?
我很确定 100 个端口的限制是由于
Docker 为每个映射端口启动一个 Go 进程,它将使用 4-6MB 的私有内存。因此在 100 个端口,Docker 进程将消耗大约 500MB 的内存。
如果您尝试将所有 30000 - 60000 端口映射到一个容器,您将需要大约 150GB 的内存。如果您同时需要 UDP 和 TCP,则需要 300GB。
如果您有使用那么多端口,那么您需要开始考虑使用--net=host
, bridging or mapping interfaces directly into a container. This is unlikely to be supported by ECS (On EC2, I had to take the "real" MAC address from a VPC interface and put it on the containers interface)。