2016-08-08 11 views
0

Ich versuche, einen Docker-Container mit dem ecs-Service von aws einzurichten. Ich möchte Ports 30000 - 60000 auf dem Host-Computer reservieren und diese Ports auf 30000 - 60000 auf dem Container zuordnen. Aws Dokumentation heißt es jedoch, dass nur 100-Ports auf dem Host reserviert werden können:Erhöhen der AWS ECS-Taskdefinition reservierte Ports begrenzen

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html

Kann mir jemand erklären, warum es eine Grenze/Abhilfen vorschlagen?

Antwort

1

Ich bin ziemlich sicher, dass die Grenze von 100 Port wird aufgrund the way Docker maps ports sein.

Docker startet einen Go-Prozess pro zugeordnetem Port, der 4-6 MB privaten Speicher verwendet. Bei 100 Ports verbrauchen die Docker-Prozesse etwa 500 MB Arbeitsspeicher.

Wenn Sie versuchen würden, alle 30000 - 60000 Ports einem Container zuzuordnen, benötigen Sie ~ 150 GB Arbeitsspeicher. 300GB, wenn Sie sowohl UDP als auch TCP wollen.

Wenn Sie verwenden müssen , dass viele Häfen, dann müssen Sie bei Verwendung --net=host suchen beginnen, Bridging oder mapping interfaces directly in einen Behälter. Dies wird wahrscheinlich von ECS nicht unterstützt (auf EC2 musste ich die "echte" MAC-Adresse von einer VPC-Schnittstelle nehmen und put it on the containers interface).