- PVSM.RU - https://www.pvsm.ru -

Управление кластером Docker Swarm с помощью Swarmpit

image

Доброго времени суток, %username%. Пора расчехлить блог после 6 лет простоя и попробовать опять что-то полезное принести сообществу.

Я крайне удивлен, что на хабре до сих пор нет ни одной статьи про Swarmpit. Я конечно понимаю, что наверняка большинство изучая Docker останавливаются собственно на нем и потом пытаются забраться на Эверест под названием Kubernetes. Не знаю точных чисел, но думаю тут большинство теряются и либо вообще забивают на Docker либо только его и используют. А зря!

Docker Swarm это почти идеальная система для почти всех. Я очень сомневаюсь, что действительно большому количеству людей нужен Kubernetes. Я убил на него почти сутки и понял, что убью еще штук 30, чтобы потом его спокойно использовать, НО я простой программист и вся эта крутая DevOps движуха вообще не о программировании. И тут я услышал про Docker Swarm и за 1 сутки абсолютно легко в него вник.

Для кого нужен Docker Swarm? Вы уже прониклись отличными возможностями Docker экосистемы. Ваши приложения состоят из микросервисов. При этом у Вас несколько серверов и хотелось бы и отказоустойчивость иметь и нагрузку как-то регулировать.

И в этой статье я вообще не буду описывать как его настроить и что это такое. Я пойду еще дальше и покажу безумно простой инструмент для работы с уже настроенным кластером. Да, кластер нужно настроить, это на самом деле всего пара команд (подробнее тут [1]):

docker swarm init
docker swarm join

В целом я бы мог просто оставить ссылку на сайт Swarmpit [2]и закончить, Вы все умеете читать, а устанавливается он вообще 1 командой и там даже думать не нужно, Вы просто расслабляетесь и запускаете свои контейнеры.

Ссылка вот [2]:

Но я все-таки немного опишу и покажу скриншоты из этой чудесной админки.

1. Главный экран

Здесь собрана вся информация о кластере. Также сюда можно закрепить избранные сервисы и следить за их статусом:

image

2. Подключение сторонних реестров

По умолчанию Swarmpit будет искать образы в hub.docker.com

image

3. Добавление нового сервиса

Тут все предельно просто и понятно. Сначала находим образ в открытом или закрытых реестрах.

image

Выбираем версию, название и само собой режим: глобальный или реплицированный. Также можно задать команду на выполнение:

image

Затем настраиваем его сеть. Может добавить из общих, настроить порты и дать hostname alias для сервиса.

image

Устанавливаем переменные среды, подключаем хранилища, добавляем конфиги и секретные конфиги.

image

Устанавливаем лимиты для приложения:

image

Можем выдать сервису теги, включить автообновление образа, выдать ноды для деплоя и вообще настроить политику редеплоя, чтобы избежать простоя приложения:

image

Настройка логов:

image

4. Само собой можно добавлять сети и изменять их

image

5. Просматривать подключенные к кластеру ноды

На одной машине у Вас может быть несколько нод (почитайте про docker-machine [3]), но инстанс Swarmpit может быть подключен только к одному кластеру и только за ним будет следить.

image

6. Добавлять хранилища, контролируемые docker

image

7. Ну и само собой добавлять конфиги

image

8. Также можно добавлять пользователей с 2-мя типами доступа

image

Т.к. это docker swarm само собой можно создавать стеки и их запуск возможен только с помощью docker-compose формата:

image

Плюсы:

+Я не кунг-фу мастер консоли, хоть и разворачивал в ней часть своих сервисов и убивал на это очень много времени. Swarmpit это время здорово экономит, особенно когда начинаешь играться с конфигами для того же nginx например. И вскоре обещают сделать версионирование конфигов с авторедеплоем связанных сервисов. Т.е. изменили строчку, сохранили и конфиг автоматом полетел во все сервисы, где он до этого был указан.

+Также я не упомянул наличие API и вот тут как раз шикарные возможности по управлению кластером своей логикой. Вы можете через API следить за состоянием, при всплеске добавлять реплик приложению, а при уменьшении их же уменьшать.

Минусы:

-Мастер пароль никак нельзя сбросить и нужно переустанавливать кластер, если Вы его потеряли

-Разработчиков вроде 1-2, поэтому фичи добавляют долго, но на текущий момент критических багов я не обнаружил

-Всякие мелкие недоработки, но большая часть из них висит в issue и разработчики обещают к 2.0 все выполнить

-Контроль только над подключенным кластером, никакой поддержки сторонних кластеров или подключения к ним нет и видимо не будет

Собственно еще раз дам ссылку на сайт Swarmpit тыц [2]
Github страница Swarmpit тыц [4].

На данный момент я сделал еще 2 open source проекта на NodeJS, если интересно могу рассказать про них тоже. 1-й это редирект для телеграма без рекламы и ультрамелкий (Docker Image весит 27МБ и тоже написан на NodeJS без единого пакета), 2-й посложнее это cdn сервер для изображений, который налету может модифицировать изображения (ресайз, смена формата, качество итд) и может сэкономить 200$ (может и меньше, такова цена Business CloudFlare который позволяет делать так же).

Автор: Спартак

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/347631

Ссылки в тексте:

[1] подробнее тут: https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/

[2] Swarmpit : https://swarmpit.io/

[3] docker-machine: https://docs.docker.com/machine/reference/create/

[4] тыц: https://github.com/swarmpit/swarmpit

[5] Источник: https://habr.com/ru/post/489750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=489750