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. Це зробить вузол менеджером (manager) та дозволить створювати розподілені мережі.

Крок 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

Якщо налаштування виконано правильно, ping покаже успішне з'єднання, підтверджуючи, що контейнери можуть взаємодіяти за іменами хостів.

Крок 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. Резервне копіювання конфігурацій: Регулярно зберігайте конфігурації мереж і стеків для швидкого відновлення у разі збоїв.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ