Как развернуть Netfilex Eureka Server и Eureka Client с докерной сетью в кластере AWS ECS - PullRequest
0 голосов
/ 21 ноября 2018

Я перевожу свое приложение Spring Cloud Eureka на AWS ECS, и в настоящее время у меня возникают некоторые проблемы с этим.

У меня есть кластер ECS на AWS, в котором были созданы две службы EC2

  1. Eureka-сервер
  2. Eureka-клиент

у каждого сервиса есть Задача, выполняемая на нем.

ВОПРОС:

как мне установить "сеть докеров" среди этих двух служб, чтобы я мог зарегистрировать мой eureka-клиент в реестре eureka-сервера?Наличие их в одном кластере, похоже, не помогает.

локально я могу создать "сеть докеров" для решения этой задачи.Возможно ли иметь «сеть докеров» на AWS?

1 Ответ

0 голосов
/ 22 ноября 2018

Проблема здесь заключается в том, как работают кластеры ECS.Если вы зайдете на свою панель инструментов и проверите определение своей задачи, вы увидите IP-адрес, который AWS назначает ресурсу автоматически.

В случае Eureka вам нужно каким-то образом получить этот IP-адрес при развертывании eureka.клиентские приложения и используйте его для регистрации на вашем eureka-сервере.Но, конечно, ваши определения задач каким-то образом уничтожаются и воссоздаются заново, поэтому вы легко их потеряете.

Я делал это раньше, и есть несколько способов добиться этого.Вот один из способов:

  1. Для экземпляров EC2, для которых вы собираетесь распространять задачи ECS как eureka-сервер или реестр, вам необходимо назначить эластичные IP-адреса, чтобы вы всегда знали, куда подключиться вусловия ip-адреса хоста.
  2. Вам также необходимо правильно пометить их, чтобы можно было ссылаться на них на следующем шаге.
  3. Затем, переключаясь обратно на ECS, при развертывании задач сервера eureka,внутри вашей конфигурации определения задачи есть аргумент placement_constraint. Это позволит вам добавить тег к вашим задачам, чтобы вы могли разместить их в экземплярах, которым вы назначали эластичные IP-адреса на предыдущих шагах.
  4. Теперь, еслиэто все хорошо, и вы развернули все, вы должны быть в состоянии отослать свои приложения клиента eureka к этому ip и зарегистрировать их.

Я знаю, что это выглядит грязно и довольно сложно, но дело в том,Проект Netflix OSS для Eureka содержит недостающие части, которые, я считаю, являются их собственной реализацией для внутреннего использования, и они делаютНе хочу делиться.

Другой и, вероятно, более холодный способ сделать это - использовать домен Route53 или запись псевдонима для ваших экземпляров, поэтому вместо использования эластичного ip вы также можете ссылаться на них с помощью DNS.

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