Докер, регистратор и Консул на примере

Я новичок в Docker и Consul, и пытаюсь понять, как контейнерные приложения могут использовать Consul для и Service registry и KV pair config management ("конфигурация").

мой понимание что я мог:

  • создайте образ, который запускает сервер Consul, так что что-то вроде этой; затем
  • разверните три из этих контейнеров Docker-Consul (таким образом, образуя кластер/кворум) на myvm01.example.com (виртуальная машина Ubuntu); затем
  • рефакторинг моего приложения для использования Consul и создания образа Docker, который запускает мое приложение и агент Consul, с агентом, настроенным для присоединения к кворуму 3-узла при запуске. При запуске мое приложение использует локальный агент Consul для удаления всех своих конфигураций, хранящихся как пары KV. Он также привлекает зарегистрированные / здоровые службы и использует локальный инструмент балансировки нагрузки для балансировки служб, с которыми он интегрируется.
  • запустите контейнеры моего приложения, скажем,myvm02.example.com (еще одна виртуальная машина Ubuntu).

Итак, для начала, если что-то из этого кажется, что я неправильно понимаю нормальное/правильное использование Докера и консула (без регистратора), пожалуйста, начните с исправления меня!

предполагая, что я более или менее прав, я недавно наткнулся на регистратор и теперь я еще больше запутался. Регистратор, похоже, является посредником между вашими контейнерами приложений и вашими серверами Consul (или любым реестром, который вы используете).

после чтение их учебник Quickstart, это звуки нравится то, что вы должны сделать, это:

  • разверните мои контейнеры кластера/кворума консула в myvm01.example.com как и раньше
  • вместо "докеризации" моего приложения для использования Consul напрямую, я просто интегрирую его с Registrator
  • затем я развертываю контейнер регистратора где-то и настраиваю его для интеграции с Consul
  • затем я развертываю контейнеры приложений. Они интегрируются с регистратором, а регистратор, в свою очередь, интегрируется с консулом.

мои соображения:

  • правильно ли мое понимание здесь или нет? Если да, то как?
  • что фактически получено добавлением регистратора. Это не кажется (по крайней мере, для нетренированного глаза) чем-то большим, чем слой косвенности между приложением и реестром услуг.
  • смогу ли я по-прежнему использовать службу KV config консула через Регистратор?

1 ответов


правильно ли мое понимание здесь или далеко от базы? Если да, то как?

Мне кажется, что это не очень хорошее решение, чтобы все члены кластера/кворума работали внутри одной виртуальной машины. Это не так плохо, если вы используете его для разработки или tetsing или что-то, где вы не заботитесь о надежности, но не для производства.

Как только ваша виртуальная машина умрет, вы потеряете все преимущества, которые у вас есть, создав кластер. И даже больше, вы можете потерять все данные у вас есть в хранилище K/V, потому что вы используете серверы Consul внутри контейнеров docker, которые должны быть дополнительно настроены для совместного использования конфигурации между запусками.

что на самом деле получается при добавлении регистратора.

С моей точки зрения, главное, что вам не нужно предоставлять экземпляр агента Consul в каждом контейнере, который вы запускаете. И контейнер с образ, который вы запускаете, отвечает только за свои основные функции, а не за регистрацию себя где-то. Вы можете просто вытащить изображение и просто запустить контейнер с ним, чтобы сделать его доступным, без дополнительной работы.

смогу ли я по-прежнему использовать службу KV config консула через регистратора?

к сожалению, нет. По крайней мере, мы не нашли решение использовать его таким образом, когда мы искали что-то, чтобы сделать обслуживание обнаружение и управление конфигурацией. Мы пришли к выводу, что регистратор не является прокси для K/V store и используется только для автоматизации обнаружения сервиса. Поэтому вам нужно использовать другую логику для доступа к K/V магазину консула.

обновление: кроме того, вот 2 статьи: "автоматическое объявление службы Docker с регистратором" и "автоматическая регистрация контейнеров с консулом и регистратором", я нашел полезным, чтобы понять Роль регистратора в процессе обнаружения службы.