2015-04-10 4 views
1

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

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

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

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

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

+0

Hey Gijs, если NGINX действительно требуется, вы можете запросить proxy_pass для haproxyip: 5000 и в haproxy вы можете определить серверную базу для маршрутизации вашего запроса. Я предлагаю вам установить NGINX на отдельной машине, и вы можете установить HAPROXY на NGINX, поскольку HAPROXY будет работать только как балансировка нагрузки. Если вам нужна конфигурация образца, я могу предоставить вам, что – Pulkit

+0

@Pulkit, похоже, что это была не ошибка конфигурации haproxy, но на сервере не хватало памяти. Никогда не думал об этом, потому что сначала это сработало, но после нескольких дней тестирования без перезагрузки моя память была вероятна, полная мусора, и было недостаточно свободного для развертывания 2 экземпляра. Марафон также не дает ошибку, если возникает такая проблема, она просто застряла на лице развертывания. Но я все еще борюсь с конфигурацией haproxy, поэтому выборка конфигурации действительно пригодится. – Gijs

+0

Не могли бы вы опубликовать новый вопрос для этого, потому что я думаю, что это не уместно ответить на это здесь. – Pulkit

ответ

2

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

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

После установки HAproxy марафон мост, вы можете получить доступ к марафонские приложений с URLS как

Haproxy servername:Service-port of-Marathon-App 

HAproxy не делать ничего с авто -scaling part