mesos-dns, лучшие практики по работе с портами

Я новичок в Service Discovery и кластерных системах. Я начал экспериментировать с Mesos и Marathon для развертывания контейнеров Docker, REST API и пользовательский интерфейс Marathon, похоже, неплохо справляются со своей задачей.

Моя проблема - это фактическое обнаружение развернутых сервисов. В целях тестирования я развернул кластер Kafka, масштабированный до трех экземпляров с помощью Marathon, как и тестовый кластер MongoDB. Клиент Mesos-DNS предоставляет мне записи типа kafka.marathon.mesos и mongo.marathon.mesos, которые подразумевают динамически отображаемый порт от хоста к контейнеру. Проблема в том, что моему клиенту явно нужна информация о целевом порте. Есть ли общий способ получить эту информацию о порте из службы автоматически и динамически? А как насчет приложений, открывающих несколько портов?

На данный момент мои мысли: - Выполнение вызова REST, чтобы получить статус о развернутом приложении и каким-либо образом извлечь соответствующие данные - Выполнение поиска DNS SRV и каким-то образом извлечь соответствующие данные - Наличие какого-то «мастера», статически привязанного к порту , с динамическими «клиентами».

Я много искал эту информацию, но, в конце концов, большинство руководств заканчивались поиском вручную, а это не то, к чему я стремлюсь.


person ummecasino    schedule 18.06.2015    source источник


Ответы (1)


Вы на месте. Недавно я провел презентацию на XebiCon по этой теме и планирую опубликовать сообщение в блоге с подробностями. о настройке вкл. Репозиторий GitHub. Для начала вы можете взглянуть на реализацию Python для части потребления HTTP API.

ОБНОВЛЕНИЕ: запись в блоге теперь доступна здесь.

person Michael Hausenblas    schedule 18.06.2015
comment
Спасибо за ответ, посмотрю! - person ummecasino; 22.06.2015