Ошибка привязки Mesos: невозможно назначить запрошенный адрес [99]

Пытаюсь запустить кластер Mesos на 2 машинах. Один из них - это сервер, который я арендую (назовем его S1), а другой - это машина, работающая у меня дома (S2). Ведомые и ведущие устройства Mesos работают внутри контейнеров Docker.

Сначала я столкнулся с этой ошибкой: https://github.com/mesos/chronos/issues/193. Я последовал советам в этом посте (установив LIBPROCESS_IP или MESOS_IP). Добавление одной из этих переменных среды вызывает эту ошибку:

F0512 08:48:55.437530     1 process.cpp:889] Failed to initialize: Failed to bind on <ip>:<port>: Cannot assign requested address: Cannot assign requested address [99]

Я полагал, что это было вызвано тем, что IP-адрес контейнера Docker был 172.17.0.1, а не IP-адрес S1 или S2. Я добавил --net=host в команду запуска докера. Он исправил ошибку на S1, но не на S2.

Я думаю, это потому, что у S2 есть локальный IP-адрес внутри моей сети (192.168.0.16), а мезо не может привязаться к IP-адресу моего маршрутизатора.

Есть ли способ заставить Mesos работать с этой конфигурацией или мне нужна машина с собственным IP-адресом?


person Sunder    schedule 12.05.2016    source источник


Ответы (1)


Хотя это не кажется идеальной конфигурацией, у вас может получиться добавить переадресацию портов на вашем маршрутизаторе (например, порты 5050 и 5051) и использовать флаг командной строки --advertise_ip при запуске главного / подчиненного устройства на машине в вашем доме. .

Объявленный IP-адрес для связи с этим главным / подчиненным устройством Mesos. Ведущий / ведомый не привязывается к этому IP-адресу. Однако этот IP-адрес может использоваться для доступа к этому главному / подчиненному устройству.

Видеть

person Tobi    schedule 13.05.2016
comment
Я пробовал этот параметр, но по какой-то причине у меня были ошибки. Просто попробовал, и я могу запустить мастер, который правильно общается с Zookeeper. Однако он не обнаруживает рабов. Но раб видит Мастера. В журналах подчиненных мы видим New master detected at master@<ip>:<port> с правильным IP и портом ... - person Sunder; 13.05.2016
comment
Мастера не обнаруживают подчиненных, подчиненные регистрируются на главном узле в ZooKeeper, поэтому я предполагаю, что была другая проблема. Вы должны выложить логи, иначе будет сложно помочь - person Tobi; 13.05.2016
comment
кстати, вы использовали IP-адрес маршрутизатора для --advertise_ip? И, конечно же, вам нужно будет настроить переадресацию портов. - person Tobi; 13.05.2016
comment
Что странно, так это то, что ведомое устройство может регистрироваться с помощью ведущего устройства, но в веб-интерфейсе Mesos похоже, что ведомого устройства нет. Вот что я имел в виду, говоря «обнаруживать рабов», извините! Вы правы, это, наверное, еще одна проблема. Я создам еще один вопрос, поскольку на него есть технический ответ. Для информации я действительно использовал IP-адрес своего маршрутизатора и перенаправил порты 5051, 5052 (поскольку порт 5050 уже был занят чем-то другим, мастер работает на 5051, а подчиненный на 5052) 8081 и 7077, чтобы попытаться запускаем Spark MesosClusterDispatcher. - person Sunder; 13.05.2016
comment
Я заметил строку в журналах: E0513 08:25:11.201673 14 process.cpp:1958] Failed to shutdown socket with fd 11: Transport endpoint is not connected, похоже, что Slave знает, кто является мастером, но не может подключиться к нему. Обменивается ли ведомое устройство с ведущим через определенный порт (5050 или 5051 для меня)? Я помню, как несколько дней назад где-то в журналах читал какой-то странный номер порта (например, 17845). - person Sunder; 13.05.2016
comment
Разрешается ли имя хоста, то есть отображается ли оно на фактический IP-адрес (а), к которому привязаны процессы? Например. есть ли запись в /etc/hosts, кроме 127.0.0.1 localhost? Кроме того, я действительно думаю, что вам следует использовать стандартные порты для переадресации портов в вашем маршрутизаторе, то есть 5050 для главного и 5051 для подчиненного ... Или вам также нужно использовать --advertise_port=5051 на хосте, работающем в вашем доме. - person Tobi; 13.05.2016