Можно ли запустить и получить доступ к мастеру mesos на машине, которая находится за прокси?
Мне успешно удалось развернуть MesosMaster / Marathon / MesosSalve в моей локальной инфраструктуре.
Проблема возникает, когда я хочу разместить MesosSlave где-нибудь в Интернете, чтобы MesosSlave и MesosMaster могли общаться через общедоступные IP-адреса.
Моя conf следующая:
Internet My Infra
.----------------------. .-----------------. .-----------------. .-------------------------------------------------.
| Mesos Slave VM | | Front Machine | | Proxy | | Tool-VM |
| 178.22.17.248 | | 39.224.147.94 | | 10.2.0.57 | | 10.1.10.176 |
|----------------------| | my.domain.com | |-----------------| | 192.168.5.1 (docker bridge) |
| | |-----------------| | | |-------------------------------------------------|
| | | | | | | |
| __________ | | __________ | | __________ | | .-----------------------------. |
| [_...__..5051.°]| |[_..5050.__...°] |<---|[_..5050.__...°] |<------------^| | Mesos-Master Container | |
| | | | | | \ __________ | 192.168.5.4 (docker bridge) | |
| | | __________ | | __________ | |[_..5050.__...°]^|-----------------------------| |
| | |[_..2181.__...°] |<---|[_..2181.__...°] |<------------^| \ __________ | |
| | | | | | \ __________ |[_..5050.__...°] | |
| | | | | | |[_..2181.__...°]^| __________ | |
| | | | | | | \[_..2181.__...°] | |
| | | | | | | '-----------------------------' |
'----------------------' '-----------------' '-----------------' '-------------------------------------------------'
Тем не мение:
Мой домен перенаправляет все, что приходит извне на порты 5050 (для Mesos) и порт 2181 (zookeeper) ТОЛЬКО для запросов, адресованных домену my.domain.com (который является виртуальным хостом). из 39.224.147.94). Но не для других запросов (поступающих на 39.224.147.94).
Поэтому я пока пытаюсь запустить сервис через CLI:
- Запустите Mesos Master (в главном контейнере Mesos).
/usr/sbin/mesos-master --ip=192.168.5.4 --work_dir=~/Mesos/mesos-0.23.0/workdir/ --zk=zk://192.168.5.4:2181/mesos --quorum=1 --log_dir=/var/log/mesos --external_log_file=/dev/stdout
- Выполните Marathon (в главном контейнере Mesos)
/usr/bin/marathon --zk zk://192.168.5.4:2181/marathon --master zk://my.domain.com:2181/mesos
- Запустите Mesos Slave (в Mesos Slave VM).
/usr/sbin/mesos-slave --master=my.domain.com:5050 --work_dir=/var/lib/mesos/agent --port=8009 --containerizers=docker --executor_registration_timeout=3mins --log_dir=/var/log/mesos
Мастер Mesos может видеть ресурсы Slave. Однако, когда я отправляю задание через Marathon, оно остается в состоянии ожидания.
Кажется, что подчиненное устройство не может общаться по имени хоста Мастера, а только используя его общедоступный IP-адрес:
У меня в журналах Slave есть:
Обнаружен новый мастер по адресу [email protected]: 5050
Однако входящий трафик на 39.224.147.94:5050 блокируется моей инфраструктурой (принимается только my.domain.com:5050).
Итак, возможно ли создать соединение между Master и Slaves, используя доменные имена, но не IP-адреса?