В прошлом я делал небольшой Docker Swarm, и он был довольно несложным - создать Swarm Manager на одном узле, создать Swarm Workers на еще двух узлах, придерживаться одного Manager. Я хотел бы узнать больше о Swarm, поэтому я слежу за серией видео «Docker Swarm: Native Docker Clustering» Найджела Полтона на Pluralsight.
Однако эти видеоролики намного сложнее, чем мои два года опыта в Swarm. назад, возможно потому, что они работают на старой («Автономной») версии Swarm. Я хотел бы задать уточняющий вопрос, чтобы убедиться, что материал, который я сейчас изучаю, слишком устарел, чтобы быть стоящим. (Я опишу ниже, что находится в видеокурсе, чтобы не было необходимости быть знакомым с этим, чтобы ответить на вопрос).
Видеоряд, которому сейчас четыре года, показывает, как:
. Автор признает, что все это довольно сложно, и намекает, что во время съемки видео ядро Docker может упростить этот процесс в будущем. Он говорит (Создание кластера Swarm -> Установка службы обнаружения HA -> 5:39):
Я бы даже поставил там дикий пант, что в какой-то момент Swarm может даже не нуждаться в нас, чтобы делать что-либо из этого. открытие бэкэнда ручной работы. Просто потому, что это немного больно, и если я знаю одну вещь о ребятах из Docker, так это то, что они все одержимы тем, чтобы дать нам этот плавный, легкий опыт работы с Docker, чего в этой части нет. момент.
И эта особенность, похоже, и есть то, что произошло на самом деле, если я правильно понимаю. Из руководства :
Вы просматриваете документацию по устаревшей автономной версии Swarm. В этих разделах описывается автономный Docker Swarm. В Docker 1.12 и выше режим Swarm интегрирован с Docker Engine. Большинству пользователей следует использовать интегрированный режим Swarm.
По общему признанию, в моем предыдущем опыте работы со Swarm использовался только один менеджер, но насколько я понимаю, можно добавить менеджера к существующему плоту, просто используя токен соединения docker swarm
.
Итак, на мой вопрос: эта эволюция функции Docker Swarm заставляет меня задаться вопросом, предлагает ли Consul какую-либо ценность для управления самим Swarm. Могу ли я это сделать? Нужно ли мне? Есть ли другие функции, которые он предлагает по сравнению с интегрированной системой консенсуса плота? Этот учебный материал теперь вреден?
(Кроме того: я смотрел пару видео от этого автора, и они отличные - если этот устарел, то это вне его контроля. материал нуждается в переработке, это должны будут организовать владельцы курсов / платформ)
.Есть два варианта Docker Swarm. Версия Classic / Legacy, которая может использовать внешнее хранилище ключей / значений, например Consul. Маловероятно, что он получит какие-либо обновления в будущем, и репозиторий недавно был переименован в "classicswarm", чтобы помочь уменьшить некоторую путаницу.
Интегрированная версия - это режим Swarm, основанный на проекте swarmkit. Это не требует какого-либо внешнего хранилища ключей / значений, и попытка настроить его в движке докеров для наложения сети не удастся, когда вы включите режим Swarm, поскольку он контролирует базу данных ключ / значение изнутри с помощью собственного решения на основе рафта.
Следовательно нет необходимости использовать Consul, и любое руководство, которое не начинается с docker swarm init
, следует игнорировать как устаревшее.
Мне очень жаль этой путаницы ... Я поищу, чтобы это старое видео было удалено или обновлено.
Для Swarm вы должны посмотреть соответствующие разделы в:
Поскольку оба они используют более современный Swarm Mode , который интегрирован в Docker Engine и не требует какого-либо старого безумия консула.
Если у вас возникнут вопросы, напишите мне на @nigelpoulton.