Установка Swarmpit в Docker
1. Инициализируйте Docker Swarm на узле:
Запустите команду для инициализации Docker Swarm на вашем узле:
docker swarm init
Эта команда создаст новый кластер Docker Swarm, и текущий узел станет менеджером (leader) кластера.
---------------------------------------------------------------
2. Проверьте статус Docker Swarm:
После инициализации проверьте статус узла, чтобы убедиться, что он является частью кластера:
docker node ls
Вы должны увидеть текущий узел с ролью Leader.
---------------------------------------------------------------
3. Перезапустите установку Swarmpit:
Теперь вы можете запустить команду для установки Swarmpit:
docker run -it --rm \
--name swarmpit-installer \
--volume /var/run/docker.sock:/var/run/docker.sock \
swarmpit/install:1.9
---------------------------------------------------------------
4. После этого вывод будет таким:
Application setup
Enter stack name [swarmpit]:
Enter application port [888]:
Enter database volume driver [local]:
Enter admin username [admin]:
Enter admin password (min 8 characters long): Password123!
DONE.
Application deployment
Creating network swarmpit_net
Creating service swarmpit_db
Creating service swarmpit_influxdb
Creating service swarmpit_agent
Creating service swarmpit_app
DONE.
Starting swarmpit.....................DONE.
Initializing swarmpit...DONE.
Summary
Username: admin
Password: Password123!
Swarmpit is running on port :888
Enjoy :)
============================================================
Разбор пункта 1 (docker swarm init)
------------------------------------------------
После этой команды должен быть такой примерно вывод:
docker swarm init
Swarm initialized: current node (j6h5nc7izw0aua6a6pi6k2kxk) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4vyha2xse21fr7sk8qwxwcxes1o6pbzv8wwev548dshpwd6bz0c-76ji5uk4uwdsf5e78mto0jt36 90.20.87.122:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
------------------------------------------------
ОПИСАНИЕ:
Сообщение, которое вы видите после выполнения команды docker swarm init, означает, что вы успешно инициализировали кластер Docker Swarm, и текущий узел (ваш сервер или машина) теперь является менеджером кластера. Это означает, что он может управлять развертыванием контейнеров и координировать другие узлы (worker и manager) в кластере.
Давайте разберём сообщение по частям:
"Swarm initialized: current node (...) is now a manager":
Это говорит о том, что Swarm-кластер был успешно инициализирован, и текущий узел назначен в качестве менеджера. Менеджер управляет состоянием кластера, планирует задачи (tasks), развертывает сервисы и т.д.
Добавление worker-узла в кластер:
Чтобы присоединить worker-узел (исполнительный узел), используется специальный токен (ключ доступа), который выводится в сообщении. Worker-узлы могут выполнять задачи, но не управляют кластером.
Пример команды для присоединения worker:
docker swarm join --token SWMTKN-1-4vyha2xse21fr7sk8qwxwcxes1o6pbzv8wwev548dshpwd6bz0c-76ji5uk4uwdsf5e78mto0jt36 90.20.87.122:2377
Worker-узлы присоединяются к кластеру через менеджер, используя этот токен.
Добавление manager-узла в кластер:
Чтобы добавить другой узел в качестве менеджера (то есть чтобы иметь несколько управляющих узлов), нужно сгенерировать и использовать другой токен:
docker swarm join-token manager
После этого команда покажет токен для присоединения менеджера, который можно использовать на других узлах для их добавления как менеджеров.
Основные роли узлов:
Manager (менеджер): Узел, который управляет состоянием кластера и распределяет задачи по worker-узлам. Может быть несколько менеджеров для отказоустойчивости.
Worker (исполнитель): Узел, который выполняет задачи, но не управляет кластером.
Что делать дальше?
Если у вас только один узел, дальнейших действий не требуется — узел уже является менеджером. Если у вас несколько машин, вы можете присоединить другие узлы (worker или manager) с помощью соответствующих команд.
Теперь вы можете развернуть сервисы, такие как Swarmpit, на этом кластере.