Как создать сеть overlay в Docker Swarm

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Docker Swarm - это мощный инструмент для оркестрации и управления контейнеризованными приложениями в масштабе. Одна из ключевых функций Docker Swarm - это возможность создания сетей overlay (накладывающихся сетей), которые позволяют контейнерам безопасно и эффективно взаимодействовать между несколькими хостами. В этом руководстве мы расскажем вам, как создать сеть overlay в Docker Swarm и развернуть на ней сервисы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-411527{{"Как создать сеть overlay в Docker Swarm"}} docker/ps -.-> lab-411527{{"Как создать сеть overlay в Docker Swarm"}} docker/create -.-> lab-411527{{"Как создать сеть overlay в Docker Swarm"}} docker/network -.-> lab-411527{{"Как создать сеть overlay в Docker Swarm"}} docker/build -.-> lab-411527{{"Как создать сеть overlay в Docker Swarm"}} end

Введение в сети overlay (накладывающиеся сети) Docker

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

Понимание сетей overlay Docker

Сети overlay Docker основаны на протоколе VXLAN (Virtual Extensible LAN), который позволяет создавать виртуальную сеть уровня 2 поверх сети уровня 3. Это позволяет контейнерам подключаться к одной логической сети, независимо от их физического расположения.

graph LR A[Docker Host 1] -- Overlay Network --> B[Docker Host 2] B -- Overlay Network --> C[Docker Host 3] C -- Overlay Network --> A

Основные преимущества использования сетей overlay Docker:

  1. Многокорпусная связность: Контейнеры могут взаимодействовать друг с другом на нескольких узлах Docker, что позволяет развертывать масштабируемые и распределенные приложения.
  2. Автоматическое обнаружение сервисов: Контейнеры в одной сети overlay могут обнаруживать и подключаться друг к другу с помощью встроенной DNS - службы, предоставляемой Docker Swarm.
  3. Балансировка нагрузки: Возможности балансировки нагрузки Docker Swarm можно использовать для распределения трафика между несколькими репликами сервиса, работающими в сети overlay.
  4. Безопасное взаимодействие: Сети overlay Docker поддерживают шифрование, обеспечивая безопасную связь между контейнерами на разных узлах.

Архитектура сети overlay

Сети overlay Docker построены на основе системы кластеризации и оркестрации Docker Swarm. Каждый узел Swarm (менеджер или рабочий узел) участвует в сети overlay, внося свой вклад в общую топологию и маршрутизацию сети.

Основные компоненты архитектуры сети overlay Docker:

  1. Конечная точка туннеля VXLAN (VTEP): На каждом узле Swarm работает VTEP, которая отвечает за инкапсуляцию и декапсуляцию сетевого трафика между контейнерами в сети overlay.
  2. База данных сети overlay: Для хранения конфигурации сети overlay и информации о маршрутизации используется распределенная база данных, такая как Raft, которая обеспечивает согласованность и доступность в кластере Swarm.
  3. Драйвер сети overlay: Драйвер сети overlay Docker отвечает за создание, настройку и обслуживание сети overlay.

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

Создание сети overlay в Docker Swarm

Создание сети overlay в Docker Swarm - это простой процесс. В этом разделе мы рассмотрим шаги по созданию сети overlay и ее настройке для использования в среде Docker Swarm.

Предварительные требования

Перед созданием сети overlay убедитесь, что у вас есть следующее:

  1. Кластер Docker Swarm с по крайней мере одним узлом - менеджером и одним рабочим узлом.
  2. Версия Docker Engine должна быть 17.06 или выше, так как более ранние версии могут не поддерживать весь спектр функций сетей overlay.

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

Для создания сети overlay в Docker Swarm выполните следующие шаги:

  1. Подключитесь к узлу - менеджеру Docker Swarm.
  2. Выполните следующую команду для создания сети overlay:
docker network create --driver overlay --attachable my-overlay-network

В этом примере мы создаем сеть overlay с именем my-overlay-network с флагом --attachable, который позволяет автономным контейнерам подключаться к сети.

Проверка создания сети overlay

После создания сети overlay вы можете проверить ее создание и просмотреть ее детали с помощью следующих команд:

## Список всех сетей в Docker Swarm
docker network ls

## Просмотр деталей сети overlay
docker network inspect my-overlay-network

Вывод команды docker network inspect предоставит информацию о сети overlay, включая подсеть, шлюз и список узлов, участвующих в сети.

Развертывание сервисов в сети overlay

После создания сети overlay вы можете развернуть на ней сервисы. При создании сервиса вы можете указать сеть, к которой он должен быть подключен, с помощью флага --network:

docker service create --name my-service --network my-overlay-network nginx:latest

Это создаст новый сервис с именем my-service и подключит его к сети overlay my-overlay-network.

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

Развертывание сервисов в сети overlay

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

Подключение сервисов к сети overlay

При создании нового сервиса в Docker Swarm вы можете указать сеть, к которой он должен быть подключен, с помощью флага --network. Это гарантирует, что контейнеры сервиса будут подключены к сети overlay и смогут взаимодействовать с другими сервисами в той же сети.

docker service create --name my-service --network my-overlay-network nginx:latest

В этом примере мы создаем новый сервис с именем my-service и подключаем его к сети overlay my-overlay-network.

Обнаружение сервисов и балансировка нагрузки

Одним из ключевых преимуществ использования сети overlay является встроенная возможность обнаружения сервисов и балансировки нагрузки, предоставляемая Docker Swarm. Когда сервисы развернуты в сети overlay, они могут обнаруживать и взаимодействовать друг с другом с помощью внутренней DNS - службы Swarm.

graph LR A[Service A] -- Overlay Network --> B[Service B] B -- Overlay Network --> C[Service C] C -- Overlay Network --> A

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

Безопасное взаимодействие

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

Масштабирование сервисов

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

docker service scale my-service=5

Эта команда масштабирует сервис my-service до 5 реплик, и Docker Swarm обеспечит, чтобы новые реплики были подключены к сети overlay и могли быть доступны другим сервисам.

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

Заключение

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