ECS + NLB не поддерживает динамический порт c, следовательно, только 1 задача на экземпляр EC2? - PullRequest
0 голосов
/ 23 февраля 2020

Пожалуйста, подтвердите, если это правда, или укажите официальную документацию AWS, которая описывает, как использовать динамическое сопоставление портов c с NLB и запускать несколько одинаковых задач в экземпляре ECS ES2. Я не использую Fargate.

  1. ECS + NLB НЕ поддерживает динамическое отображение портов c, следовательно,
  2. ECS + NLB может разрешить только 1 задачу (контейнер docker) на Экземпляр EC2 в службе ECS

Это связано с тем, что:

AWS Руководство разработчика ECS - Создание балансировщика нагрузки упоминает только ALB, который может использовать Dynami * Порт 1057 * и не упоминается в NLB.

Балансировщики нагрузки приложений предлагают несколько функций, которые делают их привлекательными для использования с сервисами Amazon ECS: * Балансировщики нагрузки приложений позволяют контейнерам использовать динамическое c отображение портов хоста (так что для одного экземпляра контейнера допускается несколько задач из одной и той же службы).

Страница создания задачи ECS ясно указывает, что порт Dynami c предназначен для ALB.

enter image description here

Сетевой балансировщик нагрузки для межсервисной связи цитирует ответ из AWS support:

"Однако я хотел бы отметить, что в настоящее время существует постоянная проблема с функциональностью NLB с ECS, в основном наблюдаемая при динамическом сопоставлении портов c, где Контейнер не может стабилизироваться из-за ошибок проверки работоспособности, я думаю, что ошибка, с которой вы сталкиваетесь, связана с этой проблемой. Я могу только рекомендовать вам использовать ALB на данный момент, так как NLB все еще довольно новый, поэтому он не полностью совместим с ECS. "


Обновления

Обнаружен документ, подтверждающий, что NLB поддерживает порт Dynami c. Однако если я переключу ALB на NLB, служба ECS не будет работать. Когда я вхожу в экземпляр EC2, агент ECS работает, но контейнер docker не работает.

Если кому-то удалось заставить ECS (тип EC2) + NLB работать, расскажите пошагово, как это было сделано.

Балансировщики сетевой нагрузки поддерживают динамическое сопоставление портов хоста c. Например, если в определении контейнера вашей задачи указан порт 80 для порта контейнера NGINX и порт 0 для порта хоста, то порт хоста динамически выбирается из диапазона эфемерных портов экземпляра контейнера (например, от 32768 до 61000 в последний Amazon ECS, оптимизированный для ECS). Когда задача запускается, контейнер NGINX регистрируется в Network Load Balancer в качестве идентификатора экземпляра и комбинации портов, а трафик c распределяется по идентификатору экземпляра и порту, соответствующему этому контейнеру. Это динамическое отображение c позволяет вам иметь несколько задач из одной службы в одном экземпляре контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...