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