Как развернуть кластер Docker Swarm: руководство для начинающих

На список статей
Blog image

Защитите свои сайты с My-Sites-Guard.com!
Сервис обеспечивает надежную защиту ваших веб-ресурсов: мониторинг доступности сайта, контроль валидности сертификатов, а также возможность собирать и анализировать логи работы сервера. My-Sites-Guard.com — всё для сохранности вашего сайта и спокойствия в работе!

Docker Swarm — это встроенная функция Docker, позволяющая объединять несколько Docker-узлов в единый кластер. Это полезно для масштабирования приложений и управления контейнерами на разных серверах. Если вы хотите управлять контейнерами как на одном, так и на нескольких серверах, Docker Swarm станет отличным решением. 

Использование Swarm дает следующие преимущества:

1. легкость масштабирования: Swarm позволяет легко добавлять и удалять узлы, обеспечивая гибкость при росте нагрузки.

2. автоматическое восстановление: Swarm следит за состоянием контейнеров и перезапускает их при сбоях.

3. балансировка нагрузки: Swarm автоматически распределяет трафик между всеми узлами.

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

Настройка Docker Swarm: от менеджера до рабочих узлов

Когда Docker установлен, можем перейти к настройке кластера. Все начинается с назначения основной роли одному из узлов, чтобы он стал менеджером. Менеджер управляет кластером, принимает решения и распределяет задачи. Вот как это можно сделать.

Шаг 1 — Инициализация кластера на главном узле. Подключитесь к серверу и выполните команду:

docker swarm init --advertise-addr <IP-адрес менеджера>

Здесь <IP-адрес менеджера> — это адрес сервера, на котором вы запускаете команду. После выполнения этой команды Docker вернет уникальный токен, который потребуется для добавления рабочих узлов.

Шаг 2 — Присоединение рабочих узлов. Теперь подключитесь к каждому серверу, который вы хотите добавить в кластер, и выполните команду с токеном, полученным на шаге 1. Например:

docker swarm join --token <токен> <IP-адрес менеджера>:2377

Когда рабочий узел успешно подключен, он станет частью вашего кластера. Повторите этот шаг для всех рабочих серверов.

Шаг 3 — Проверка кластера. Чтобы убедиться, что узлы добавлены корректно, на сервере-менеджере выполните команду:

docker node ls

Вы увидите список всех узлов с их статусом и ролями (менеджер или рабочий).

Управление службами в Docker Swarm

Теперь, когда кластер настроен, можно развернуть службы (или приложения). В Swarm службы представляют собой контейнеры, которые распределяются по узлам для выполнения. Предположим, что вы хотите развернуть веб-сервер Nginx. Вот как это сделать.

Пример 1 — Создание службы. Чтобы создать службу с Nginx, выполните следующую команду на менеджере:

docker service create --name web --replicas 3 -p 80:80 nginx

Эта команда запускает 3 реплики контейнера Nginx и автоматически распределяет их по узлам. Опция -p 80:80 перенаправляет порт 80 на каждом узле на порт 80 контейнера.

Пример 2 — Проверка статуса службы. Чтобы убедиться, что служба запущена и работает, используйте команду:

docker service ls

Эта команда покажет, сколько реплик запущено и на каких узлах.

Пример 3 — Масштабирование службы. Вы можете изменить количество реплик для увеличения или уменьшения нагрузки:

docker service scale web=5

Эта команда увеличит количество контейнеров Nginx до пяти, равномерно распределив их между доступными узлами.

Docker Swarm автоматически перенаправляет запросы на узлы, на которых запущены контейнеры службы, что обеспечивает балансировку нагрузки.

Комментарии

Пока нет комментариев

Добавить комментарий