0Pricing
Docker & DevOps Fundamentals · Урок

Настройка кластера Swarm

Инициализируйте Docker Swarm, добавьте управляющие и рабочие узлы и изучите состояние кластера.

«Настройка кластера Swarm» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

Добро пожаловать в настройку Docker Swarm!

Готовы выполнить оркестрацию контейнеров? В этом уроке мы узнаем, как превратить один узел Docker в мощный кластер Swarm.

Вы узнаете, как инициализировать Swarm, добавлять новые машины в качестве узлов-менеджеров и рабочих узлов, а также проверять состояние кластера.

Настройка кластера Swarm — иллюстрация 1

Предварительные требования для настройки 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 :2377. Используйте эту команду на других машинах, чтобы присоединить их в качестве рабочих узлов.

Токен необходим для аутентификации и обеспечения безопасности.

Демонстрация: команда присоединения рабочего узла

Это пример команды, которую нужно выполнить на отдельной машине (предполагаемом рабочем узле), чтобы присоединить её к 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) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Настройка кластера Swarm»?

Инициализируйте Docker Swarm, добавьте управляющие и рабочие узлы и изучите состояние кластера. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?

Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Настройка кластера Swarm»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?

Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Введение в Docker Swarm
  2. Настройка кластера Swarm
  3. Развёртывание сервисов в Swarm
  4. Масштабирование и обновления без простоя в Swarm
← Назад к Docker & DevOps Fundamentals