7.1 Вивчення мережі overlay
Мережа overlay — це розподілена мережа Docker, яка дозволяє контейнерам, що працюють на різних хостах, взаємодіяти один з одним. Її часто використовують у контексті оркестрації контейнерів, таких як Docker Swarm або Kubernetes, для забезпечення зв'язку між контейнерами, що працюють на різних вузлах. У цій лекції ми розглянемо, як створити та використовувати мережу overlay, а також приклади її застосування.
Мережа overlay створює віртуальну розподілену мережу поверх існуючих мереж, об’єднуючи кілька хостів в єдиний простір мережі. Це дозволяє контейнерам взаємодіяти, ніби вони знаходяться в одній локальній мережі, незалежно від фізичного розташування хостів.
Переваги використання мережі overlay:
- Зв’язок між контейнерами на різних хостах: забезпечує мережеву взаємодію між контейнерами, запущеними на різних вузлах.
- Ізоляція: дозволяє створювати ізольовані мережеві простори для різних застосунків.
- Масштабованість: підтримує динамічне додавання та видалення вузлів без перерв у роботі.
7.2 Створення мережі overlay
Для створення мережі overlay треба спочатку ініціалізувати кластер Docker Swarm. Це зробить вузол менеджером (manager) та дозволить створювати розподілені мережі.
Крок 1: Ініціалізація Docker Swarm
Запусти команду на хості, який буде менеджером кластера. Ця команда ініціалізує кластер Swarm та виведе команду для приєднання інших вузлів до кластера.
docker swarm init
Крок 2: Приєднання робочих вузлів до кластера
На інших хостах виконай команду, яку вивела docker swarm init, щоб приєднати їх до кластера. Приклад команди:
docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377
Крок 3: Створення мережі overlay
Після ініціалізації кластера створи мережу overlay за допомогою команди:
docker network create -d overlay my_overlay_network
Крок 4: Перевірка мережі
Щоб перевірити успішне створення мережі, виконай команду docker network ls, яка виведе список усіх мереж, включаючи нову overlay мережу:
docker network ls
Приклад виводу:
NETWORK ID NAME DRIVER SCOPE
a1b2c3d4e5 my_overlay_network overlay swarm
Тепер мережа my_overlay_network готова до використання для розподілених додатків.
7.3 Використання overlay мережі
Тепер, коли мережу створено, ви можете запускати контейнери та сервіси, під'єднані до цієї мережі.
Приклад використання overlay мережі для сервісів
У Docker Swarm можна використовувати сервіси для управління контейнерами. Створимо кілька сервісів, які будуть під'єднані до overlay мережі.
Крок 1: Створення сервісу веб-сервера
docker service create --name webserver --network my_overlay_network -p 8080:80 nginx
Ця команда створює сервіс webserver, під'єднаний до мережі my_overlay_network. Веб-сервер буде доступний за адресою http://localhost:8080.
Крок 2: Створення сервісу бази даних
docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres
Тут створюється сервіс database, під'єднаний до тієї ж мережі, з установкою змінної середовища POSTGRES_PASSWORD.
Крок 3: Перевірка зв'язку між сервісами
Запустіть тимчасовий контейнер для перевірки зв'язку між сервісами:
docker run -it --network my_overlay_network busybox
Всередині контейнера використовуйте команди ping, щоб перевірити зв'язок із веб-сервером і базою даних:
ping webserver
ping database
Якщо налаштування виконано правильно, ping покаже успішне з'єднання, підтверджуючи, що контейнери можуть взаємодіяти за іменами хостів.
Крок 4: Перегляд статусу сервісів
Використовуйте команду docker service ls, щоб перевірити статус створених сервісів:
docker service ls
Очікуваний вивід покаже інформацію про запущені сервіси, їхній статус і кількість реплік.
Примітка: overlay мережа дозволяє контейнерам на різних хостах обмінюватися даними, якщо вони під'єднані до одного кластера Swarm.
7.4 Приклади використання overlay мережі у Docker Compose
Docker Compose спрощує керування багатоконтейнерними додатками та мережами. Ви можете визначити overlay мережу і використовувати її для зв'язку між контейнерами у файлі docker-compose.yml.
Приклад файлу docker-compose.yml:
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:
docker stack deploy -c docker-compose.yml mystack
Ця команда розгорне стек, використовуючи файл docker-compose.yml, і створить сервіси, підключені до мережі my_overlay_network.
Практичні поради:
- Моніторинг мережі: Використовуйте інструменти моніторингу Docker Swarm, такі як Docker Dashboard або Prometheus, для відстеження стану мережі та взаємодії між контейнерами.
- Керування масштабованістю: Overlay мережа підтримує динамічне додавання та видалення вузлів. Забезпечте правильну настройку мережевих ресурсів для масштабування додатків.
- Резервне копіювання конфігурацій: Регулярно зберігайте конфігурації мереж і стеків для швидкого відновлення у разі збоїв.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ