Докер, регистратор и Консул на примере
Я новичок в 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 с регистратором" и "автоматическая регистрация контейнеров с консулом и регистратором", я нашел полезным, чтобы понять Роль регистратора в процессе обнаружения службы.