2015-11-15 5 views
1

У меня возникла проблема с пониманием необходимости отдельного сервера обнаружения служб, в то время как мы могли зарегистрировать подчиненный узел на главном узле в подчиненном запуск узла по любому протоколу. Хостинг другой службы кажется излишним для меня.В чем разница между установкой отдельного открытия службы и ее интеграцией в кластерную машину в Docker Swarm

ответ

4

Docker Swarm существует для создания кластера хостов, работающих на Docker, и планирования контейнеров по кластеру.
Он не включает service discovery, который предоставляется бэкэнд-сервисом, таким как etcd, consul или zookeeper.

  • Первая проблема: регистрационная служба и открытие является проблемой инфраструктуры, а не озабоченность применения.
  • Вторая проблема: внедрение регистрации услуг и обнаружение, когда инфраструктура и реализация приложения взаимно агностически сложны.

DockerCon делает это различие ясно this morning (Nov. 16th, 2015), с "Докер Стек":

enter image description here
(Графика от @laurelcomics)

Docker сети решает эти проблемы путем поддержки интерфейс (DNS) с подключаемыми компонентами инфраструктуры, которые поддерживают общий интерфейс KV.

Вы можете увидеть consul.io используется в:

Это означает, что:

  • Консул - это магазин KV (Key/Value), который можно подключить к Рою, чтобы управлять аспектом обнаружения услуг.
  • Swarm - это уровень доступа, который обычно является слоем, который содержит компонент шлюза или маршрутизации, который позволяет другим пользователям реально достигать ваших услуг.

https://cdn-images-1.medium.com/max/800/1*aQpT7eAmwhWItNuIi9PXFw.png

(Изображение из «Easy routing and service discovery with Docker, Consul and nginx» статьи, написанной Ladislav Gazo)

Цель состоит в том, чтобы изолировать то, что является проблемой инфраструктуры (Discovery службы) в своем контейнере, отдельно от проблема с инструментом dev (Swarm).

 Смежные вопросы

  • Нет связанных вопросов^_^