+7 495 230 03 03 8 800 222 50 03
DevOps

Установка Docker Swarm

Для развертывания сервиса Docker Swarm необходимо: 3 сервера, физические или виртуальные. Конфигурация от 4 CPU Core, 4 Gb RAM для manage node; от 2 CPU Core, 2 Gb RAM для worker node. Для уменьшения количества сетевых задержек скорость сети должна быть от 1 Гбит\с. Объем и состав хранилища данных зависит от используемой полезной нагрузки. Рекомендовано использовать SSD-диски или HDD, но в конфигурации RAID-массива с ускорением чтения и записи.

В данной инструкции для развертывания сервиса использовалась ОС Ubuntu версии 22 и 20.

В файлы “/etc/hosts” на каждом сервере необходимо внести данные о всех нодах в кластере:

192.168.1.10    manager.esit.info manager       
192.168.1.11    worker-01.esit.info worker-01    
192.168.1.12    worker-02.esit.info worker-02

На все ноды кластера необходимо установить Docker.

  1. Устанавливаем зависимости:
    sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common lsb-release
    		
  2. Добавляем репозиторий и ключ безопасности к нему:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    		
    		
  3. Обновляем индекс репозитория и устанавливаем необходимый пакет:
    sudo apt update
    apt install docker-ce
    		
  4. Проверяем запустился ли Docker:
    systemctl status docker
    		
  5. Добавляем текущего пользователя в группу Docker при необходимости создаем её:
    groupadd docker && sudo usermod -aG docker dockeruser
    		

Создание кластера Docker Swarm

Настраиваем ноду управления (manager node)

  1. Устанавливаем зависимости:
    sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common lsb-release
    		
  2. Добавляем репозиторий и ключ безопасности к нему:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    		
    		
  3. Выполняем команду, указываем IP-адрес на котором будет работать нода управления:
    sudo docker swarm init --advertise-addr 192.168.1.10
    		
  4. В выводе будет указана команда, которую необходимо выбрать на вычислительных нодах для подключения их к кластеру:
    sudo docker swarm join --token SWMTKN-1-254kasxcthd74z8fajb5c1u6jyz6qfk4ood8u4qotw7go9jj0p-ertgb7omy86xcgoh45vau2kaj 192.168.1.10:2377
    		

Подключаем вычислительные ноды (worker node)

  1. Выполняем команду из предыдущего пункта на всех вычислительных нодах, которые необходимо подключить. Далее проверяем все ли ноды корректно добавились в кластер, выполняем команду:
    docker node ls
    		
  2. Если в выводе команды присутствуют все ноды и статус Ready значит все в порядке. Разворачивать приложения в Swarm можно через командную строку или через docker-compose файл:
    docker stack deploy --compose-file docker-compose.yml stackdemo
    docker service create --name web-server --publish 8080:80 nginx:1.13-alpine
    		
    		

Репликация и масштабирование

docker service scale web-server=3 — web-server из предыдущего пункта будет запущен на всех нодах. Количество реплик будет увеличено до 3. Проверяем через docker service ls.

Настройку и поддержку Docker Swarm мы осуществляем в рамках DevOps-аутсорсинга!

Дата публикации: 10 января 2024
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.