Настройка кластера Swarm
Инициализируйте Docker Swarm, добавьте управляющие и рабочие узлы и изучите состояние кластера.
«Настройка кластера Swarm» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Добро пожаловать в настройку Docker Swarm!
Готовы выполнить оркестрацию контейнеров? В этом уроке мы узнаем, как превратить один узел Docker в мощный кластер Swarm.
Вы узнаете, как инициализировать Swarm, добавлять новые машины в качестве узлов-менеджеров и рабочих узлов, а также проверять состояние кластера.

Предварительные требования для настройки Swarm
Прежде чем начать, подготовьте несколько вещей:
- Docker Desktop/Engine: установите на всех машинах, которые планируете использовать.
- Доступ к сети: все машины должны иметь возможность обмениваться данными друг с другом по сети.
- Открытые порты: Docker Swarm использует определённые порты для обмена данными. Убедитесь, что они открыты:
TCP port 2377для обмена данными при управлении кластером.TCP & UDP port 7946для оверлейной сети контейнеров.UDP port 4789для трафика оверлейной сети.
Инициализация первого Swarm
Чтобы запустить новый Swarm, выберите одну машину, которая станет первым узлом-менеджером. Этот узел будет выполнять все задачи оркестрации.
Для начала используйте команду docker swarm init. Она превращает текущий Docker Engine в менеджер Swarm.
По умолчанию используется IP-адрес текущей машины. При необходимости можно указать другой IP с помощью --advertise-addr.
Демонстрация: инициализация Swarm
Инициализируем новый Swarm. Выполните эту команду на выбранной машине-менеджере. После инициализации мы проверим её состояние.
Примечание: возможно, потребуется заменить YOUR_MANAGER_IP на фактический IP-адрес вашей машины, если Docker не сможет правильно определить его автоматически.
docker swarm init --advertise-addr YOUR_MANAGER_IP
docker node lsРоли узлов в Swarm
В Docker Swarm узлы имеют разные роли:
- Узлы-менеджеры: это мозг Swarm. Они управляют кластером, выполняют оркестрацию сервисов и поддерживают желаемое состояние приложений. Для обеспечения высокой доступности обычно используют несколько менеджеров.
- Рабочие узлы: на этих узлах запускаются ваши контейнеризированные приложения. Они получают задачи от узлов-менеджеров и выполняют их.
Один узел может одновременно быть менеджером и рабочим узлом.
Добавление рабочих узлов в Swarm
После инициализации Swarm можно добавить другие машины в качестве рабочих узлов. Это увеличивает ёмкость кластера для запуска контейнеров.
При выполнении docker swarm init выводится команда, например docker swarm join --token . Используйте эту команду на других машинах, чтобы присоединить их в качестве рабочих узлов.
Токен необходим для аутентификации и обеспечения безопасности.
Демонстрация: команда присоединения рабочего узла
Это пример команды, которую нужно выполнить на отдельной машине (предполагаемом рабочем узле), чтобы присоединить её к Swarm. Не забудьте заменить SWMTKN-... на фактический токен, а MANAGER_IP — на IP-адрес менеджера.
Примечание: эту команду нельзя выполнить непосредственно в данной среде, поскольку для неё требуется конфигурация из нескольких машин. Она приведена в демонстрационных целях.
docker swarm join \
--token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
192.168.1.100:2377Проверка состояния кластера Swarm
После добавления узлов рекомендуется убедиться, что они успешно присоединились к Swarm.
С помощью команды docker node ls, выполненной на любом узле-менеджере, можно просмотреть все узлы Swarm, их состояние, доступность и роли.
Чтобы узел был полностью работоспособен, его STATUS должен иметь значение Ready, а AVAILABILITY — значение Active.
Быстрая проверка: инициализация Swarm
Вы решили настроить новый Docker Swarm. Какую команду следует использовать на первой машине, чтобы сделать её исходным узлом-менеджером?
Повторение: настройка Swarm
Отличная работа! Вы изучили основные сведения о настройке кластера Docker Swarm:
docker swarm init: используется для создания нового Swarm и назначения текущей машины первым менеджером.docker swarm join: используется для добавления других машин в качестве рабочих узлов или узлов-менеджеров в существующий Swarm.docker node ls: позволяет проверить состояние и роли всех узлов в кластере Swarm.
С помощью этих команд можно создать надёжную основу для оркестрации контейнеризированных приложений!
Часто задаваемые вопросы
Урок «Настройка кластера Swarm» бесплатный?
Да — полный текст урока «Настройка кластера Swarm» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Настройка кластера Swarm»?
Инициализируйте Docker Swarm, добавьте управляющие и рабочие узлы и изучите состояние кластера. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Настройка кластера Swarm»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в Docker Swarm
- Настройка кластера Swarm
- Развёртывание сервисов в Swarm
- Масштабирование и обновления без простоя в Swarm