JavaRush /Курсы /Модуль 2: Fullstack /Изучение сети overlay

Изучение сети overlay

Модуль 2: Fullstack
15 уровень , 6 лекция
Открыта

7.1 Изучение сети overlay

Сеть overlay — это распределенная сеть Docker, которая позволяет контейнерам, работающим на разных хостах, взаимодействовать друг с другом. Она часто используется в контексте оркестрации контейнеров, таких как Docker Swarm или Kubernetes, для обеспечения связи между контейнерами, работающими на разных узлах. В этой лекции мы рассмотрим, как создать и использовать сеть overlay, а также примеры её применения.

Сеть overlay создаёт виртуальную распределенную сеть поверх существующих сетей, объединяя несколько хостов в единое сетевое пространство. Это позволяет контейнерам взаимодействовать, как если бы они были в одной локальной сети, независимо от физического расположения хостов.

Преимущества использования overlay сети:

  1. Связь между контейнерами на разных хостах: обеспечивает сетевое взаимодействие между контейнерами, запущенными на различных узлах.
  2. Изоляция: позволяет создавать изолированные сетевые пространства для различных приложений.
  3. Масштабируемость: поддерживает динамическое добавление и удаление узлов без перерыва в работе.

7.2 Создание сети overlay

Для создания overlay сети необходимо сначала инициализировать кластер Docker Swarm. Это создаст управляющий узел (менеджер) и позволит создавать распределённые сети.

Шаг 1: Инициализация Docker Swarm

Запустите команду на хосте, который будет менеджером кластера. Эта команда инициализирует кластер Swarm и выводит команду для присоединения других узлов к кластеру.

Terminal

docker swarm init

Шаг 2: Присоединение рабочих узлов к кластеру

На других хостах выполните команду, которую вывела docker swarm init, чтобы присоединить их к кластеру. Пример команды:

Terminal

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Шаг 3: Создание overlay сети

После инициализации кластера создайте overlay сеть с помощью команды:

Terminal

docker network create -d overlay my_overlay_network

Шаг 4: Проверка сети

Для проверки успешного создания сети выполните команду docker network ls, которая выведет список всех сетей, включая новую overlay сеть:

Terminal

docker network ls

Пример вывода:

Terminal

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Теперь сеть my_overlay_network готова к использованию для распределённых приложений.

7.3 Использование overlay сети

Теперь, когда сеть создана, вы можете запускать контейнеры и сервисы, подключенные к этой сети.

Пример использования overlay сети для сервисов

В Docker Swarm можно использовать сервисы для управления контейнерами. Создадим несколько сервисов, которые будут подключены к overlay сети.

Шаг 1: Создание сервиса веб-сервера

Terminal

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Эта команда создаёт сервис webserver, подключённый к сети my_overlay_network. Веб-сервер будет доступен по адресу http://localhost:8080.

Шаг 2: Создание сервиса базы данных

Terminal

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Здесь создаётся сервис database, подключённый к той же сети, с установкой переменной среды POSTGRES_PASSWORD.

Шаг 3: Проверка связи между сервисами

Запустите временный контейнер для проверки связи между сервисами:

Terminal

docker run -it --network my_overlay_network busybox

Внутри контейнера используйте команды ping, чтобы проверить связь с веб-сервером и базой данных:

Terminal

ping webserver
ping database

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

Шаг 4: Просмотр статуса сервисов

Используйте команду docker service ls, чтобы проверить статус созданных сервисов:

Terminal

docker service ls

Ожидаемый вывод покажет информацию о запущенных сервисах, их статусе и количестве реплик.

Примечание: overlay сеть позволяет контейнерам на разных хостах обмениваться данными, если они подключены к одному кластеру Swarm.

7.4 Примеры использования overlay сети в Docker Compose

Docker Compose упрощает управление многоконтейнерными приложениями и сетями. Вы можете определить overlay сеть и использовать её для связи между контейнерами в файле docker-compose.yml.

Пример файла docker-compose.yml:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    networks:
      - my_overlay_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: mysecretpassword
    networks:
      - my_overlay_network
        
networks:
  my_overlay_network:
    driver: overlay
    attachable: true

Запуск Docker Compose:

Terminal

docker stack deploy -c docker-compose.yml mystack

Эта команда развернет стек, используя файл docker-compose.yml, и создаст сервисы, подключенные к сети my_overlay_network.

Практические советы:

  1. Мониторинг сети: Используйте инструменты мониторинга Docker Swarm, такие как Docker Dashboard или Prometheus, для отслеживания состояния сети и взаимодействия между контейнерами.
  2. Управление масштабируемостью: Overlay сеть поддерживает динамическое добавление и удаление узлов. Обеспечьте правильную настройку сетевых ресурсов для масштабирования приложений.
  3. Резервное копирование конфигураций: Регулярно сохраняйте конфигурации сети и стэков для быстрого восстановления в случае сбоев.
3
Задача
Модуль 2: Fullstack, 15 уровень, 6 лекция
Недоступна
Создание overlay сети
Создание overlay сети
3
Задача
Модуль 2: Fullstack, 15 уровень, 6 лекция
Недоступна
Создание сервисов в overlay сети
Создание сервисов в overlay сети
3
Задача
Модуль 2: Fullstack, 15 уровень, 6 лекция
Недоступна
Проверка связи между сервисами
Проверка связи между сервисами
3
Задача
Модуль 2: Fullstack, 15 уровень, 6 лекция
Недоступна
Развертывание стэка с использованием overlay сети
Развертывание стэка с использованием overlay сети
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ