Контейнеры докеров балансировки нагрузки в кластере Mesos с HAproxy

Я работаю над кластером Mesos с 3 узлами mesos-master (ip 105,106,107) и 3 узлами mesos-slave (ip 109,110,111). Apache Marathon v0.8.0 установлен на 3 главных узлах, а Docker v1.5 - на 3 подчиненных узлах.

Я нашел учебник по Mesos + Docker на канале Mesosphere на YouTube, и там они развернули веб-сервер Nginx через Marathon api я следил за видео, и оно сработало, Nginx был развернут в контейнере Docker, и я смог масштабировать приложение до большего количества экземпляров, чем у меня есть подчиненные узлы.

Сейчас пытаюсь установить HAproxy для балансировки нагрузки на узлы. Я следил за этим руководством на веб-сайте Mesosphere по установке HAproxy-Marathon-Bridge. HAproxy теперь через задание cron может находить запущенные экземпляры.

Проблема в том, что после установки моста Marathon я не могу масштабировать свои экземпляры больше, чем у меня есть доступные узлы, даже если на каждом подчиненном сервере работает только один экземпляр Nginx. Также Ngingx index.html доступен на моем сервере 105: 80 (избранный лидер) и 107: 80. Я не знаю, почему это так. Потому что я думал, что Haproxy и мост Marathon всегда перенаправляли трафик на порт 80 избранного лидера.

HAproxy и HAproxy Marathon Bridge устанавливаются на каждом главном и каждом подчиненном узлах. Могу ли я удалить HAproxy и HAproxy Marathon Bridge на мастерах и поставить одну машину HAproxy перед этими тремя?


person Gijs    schedule 10.04.2015    source источник
comment
Привет, Gijs, если вам действительно нужен NGINX, вы можете запросить proxy_pass на haproxyip: 5000, а в haproxy вы можете определить серверную часть для маршрутизации вашего запроса. Я бы посоветовал вам установить NGINX на отдельном компьютере, и вы можете установить HAPROXY на NGINX, поскольку HAPROXY будет работать только как балансировщик нагрузки. Если вам требуется образец конфигурации, я могу предоставить вам   -  person Pulkit    schedule 22.04.2015
comment
@Pulkit, похоже, это не была ошибка конфигурации haproxy, но на сервере не хватило памяти. Никогда не думал об этом, потому что сначала это сработало, но после нескольких дней тестирования без перезагрузки моя память, вероятно, была заполнена мусором, а свободного места было недостаточно для развертывания двух экземпляров. Marathon также не выдает ошибку, если возникает подобная проблема, он просто застревает на поверхности развертывания. Но я все еще борюсь с конфигурацией haproxy, поэтому примерная конфигурация действительно пригодится.   -  person Gijs    schedule 29.04.2015
comment
Не могли бы вы задать новый вопрос по этому поводу, потому что я думаю, что здесь отвечать на него неуместно.   -  person Pulkit    schedule 30.04.2015


Ответы (1)


Это не проблема Haproxy, удалите Haproxy на всех узлах mesos (Master / Slave) и установите его на одном узле.

Следуйте инструкциям по этой ссылке: https://mesosphere.github.io/marathon/docs/service-discovery-load-balancing.html.

После установки Haproxy marathon bridge вы можете получить доступ к своим марафонским приложениям с помощью URL-адресов, например

Haproxy servername:Service-port of-Marathon-App

Haproxy ничего не делает с частью автомасштабирования

person Rajiv Reddy    schedule 05.08.2015