Статьи

Docker с Spring Boot и MySQL: Docker Swarm, часть 3

Режим Docker Swarm

В моих предыдущих двух статьях я писал о docker basic и docker-compose, где мы развертывали реальные приложения в Docker-контейнере с помощью Docker CLI и docker-compose. В первой статье мы использовали Dockerfile для настройки нашей среды и развернули приложение, запустив контейнеры отдельно, а затем построили связь между каждым из них.

Во второй статье мы запустили несколько контейнеров с помощью  инструмента docker-compose . Но для масштабирования и высокой доступности нам нужно запускать наше приложение на нескольких хост-машинах с кластерными средствами. Для организации распределенных систем любого масштаба для достижения масштабируемости и высокой доступности Docker имеет собственную реализацию под названием Swarm. Swarm использует  библиотеку SwarmKit для оркестровки.  

Обзор SwarmKit

SwarmKit — это обнаружение узлов, консенсус, основанный на плотах, планирование задач, инструментарий оркестровки на основе примитивов, который может масштабировать распределенную систему. Этот инструментарий использует согласованный алгоритм Raft для координации и принятия решений в распределенной системе. SwarmKit отвечает за оркестровку, планирование и управление кластерами.

Важные условия 

Мы уже узнали некоторые важные термины о Docker, контейнерах, изображениях и т. Д. Теперь мы попытаемся развернуть приложение с масштабируемостью. С точки зрения Docker, Swarm организует большое количество хостов и поддерживает масштабируемость и высокую доступность.

Некоторые ключевые термины Docker Swarm перечислены ниже:

Узел . С точки зрения оркестровки, узел является хост-машиной. Узлом может быть несколько виртуальных машин на одном хост-компьютере.

Узел диспетчера :  этот узел отвечает за поддержание оркестровки Swarm. Управляет кластерной средой.

Рабочий узел :  этот узел отвечает за выполнение задач, определенных узлом менеджера. Он всегда будет уведомлять о своем состоянии узел диспетчера и предоставлять услуги, которые ему назначены.

Сервис : это задачи, которые выполняются на узле диспетчера или рабочего.


Вам также может понравиться:
Мониторинг Docker Swarm .

Настройка Swarm Node и пример соединения

Мы обсуждали Docker CLI и Docker-Compose в моих предыдущих двух статьях с реальными проектами. Теперь мы будем практиковать развертывание приложения на нескольких хостах / виртуальных машинах на одном компьютере с помощью Docker Swarm. Перед этим мы проверим информацию Docker командой  docker info. В моем случае он возвращает следующий снимок:

Рой в неактивном состоянии

Здесь мы видим, что Docker Swarm находится в неактивном состоянии. Итак, мы должны инициализировать Рой. Одна из самых важных вещей, которую следует запомнить, — убедиться, что на вашей машине установлена ​​виртуальная машина. Если у вас не установлена виртуальная машина, сначала установите виртуальную машину, а затем перейдите к дальнейшим шагам.

Теперь мы создадим три машины Docker. Один из них предназначен для узла управления, а два других — для рабочих узлов. Для этого мы будем использовать следующие команды:

 docker-machine create --driver virtualbox manager 


ReStructuredText