Вступ до архітектури рою Докер
Docker Swarm - це інструмент для кластеризації та оркестрування контейнерів, який вбудований в Docker Engine для розподіленої системи, яка включає сотні контейнерів. Завдання Docker Node, Docker Services та Docker є ключовими компонентами архітектури Docker roarm.
- Вузол Докера: Цей екземпляр Docker Engine, що входить до рою Докера, має два види:
- Вузол менеджера: Відповідає за всі завдання з оркестрування та управління контейнерами, необхідні для підтримання системи у бажаному стані, таких як підтримка стану кластера, планування послуг та обслуговування кінцевих точок HTTP режиму рою.
- Докер-сервіс: саме визначення завдання потрібно виконати.
Типова архітектура рою Докер
Нижче наведено моменти для типової архітектури рой докер:
- Вузол є ключовим членом архітектури ройового докера, архітектура рій може мати більше ніж один вузол менеджера, керований одним вузлом менеджера, обраним за допомогою алгоритму Raft, вузол менеджера також може працювати як робочий вузол, але може бути налаштований на роботу менеджером вузол теж.
- Вузли менеджера використовують алгоритм консенсусу Raft для внутрішнього управління станом кластера. Це потрібно для того, щоб усі вузли менеджера, які планують і контролюють завдання кластеру, підтримувати / зберігати послідовне стан.
- Рій - це скупчення Docker Engine або вузлів, де ми розгортаємо наші сервіси. На ранній стадії Докер створив систему управління кластерами з протоколом зв'язку, відомим як Beam. Пізніше вони додали ще API та перейменували його на рій. Рій першого покоління називається "рій v1".
Робочий потік докерського рою
Робочий процес докерського рою складається з розуміння того, як працюють вузли та служби в архітектурі докерного рою:
Крок 1: Першим кроком є створення набору докер-машини, який буде виконувати роль вузлів у докерному рої , один з цих вузлів буде менеджером, решта вузол буде діяти як робочі вузли. Для створення докер-машини використовуйте команду в Windows, запустіть докерний термінал.
docker-machine create –driver hyperv manager1
- Де "manager1" - ім'я докер-машини, щоб перелічити машини, і він запускається відповідно.
docker-machine ls
docker-machine ip manager1
Крок 2: Другий крок - створити робочі машини, використовуйте команду нижче, щоб створити стільки, скільки вам потрібні робочі машини, тут давайте створимо 3 робітники.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Ми можемо підключитися до менеджера чи працівника за допомогою команди нижче, яка допоможе вам потрапити всередину машини.
docker-machine ssh manager1/worker1
Крок 3: Третій крок - ініціалізація рою докера, ми повинні запустити цю команду на машині, на якій ми хочемо працювати менеджером, тобто ми робимо менеджер вузлів, ми можемо також додати більше менеджерів.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Крок 4: Крок четвертий - приєднати вузли робітників до рою, отримати команду приєднатись до вузла як працівник, використовуючи команду нижче на керуючій машині, і запустити команду, яку ви отримали на робочій машині, яку ви хочете зробити працівником.
Docker swarm join-token worker1
- Щоб перевірити, чи приєднається працівник до рою чи не перейти до машини менеджера та запустити команду, він відобразить список доданих робочих машин із деталями менеджера.
docker-machine ls
Крок 5: Крок п'ятий полягає у запуску стандартних команд докера на менеджері.
docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)
Крок 6: Крок шостий - запустити контейнери докера на докер-рій, ми можемо створити будь-яку службу, і це репліки. Перейдіть на ub.docker.com, увійдіть у систему та перейдіть до вивчення депозитаріїв, ми можемо побачити різні зображення, які є двигунами, наприклад, nginx (він працює на веб-сервері) створює сервіс, і це копія, використовуючи команду нижче на менеджері.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Де "sample" - це ім'я служби, а 80 - порт, який піддається впливу, щоб перевірити стан служби запустити нижче команди на вузлі менеджера.
docker service ls
docker service ps sample
Перевірте службу, що працює на всіх вузлах, а також перевірте браузер, вказавши IP для всіх вузлів.
Крок 7: Крок сьомий, тепер ми бачимо фактичне використання рою докерів, де ми масштабуємо послугу вгору та вниз. Щоб масштабувати сервіс, запустіть команду нижче на керованій машині
docker service scale sample=4
- Наведена вище команда змусить зразок служби працювати на 4 вузлах, хоча всі вузли зайняті, це створить іншу службу для менеджера чи працівника. Аналогічним чином ми можемо зменшити масштаб служби.
docker service scale sample=2
- Ми також можемо перевірити вузол, щоб отримати деталі, наприклад, скільки та яка служба працює на вузлі, виконавши команди нижче на вузлі менеджера
docker node inspect worker1/manager1
docker node inspect self
Крок 8: Крок восьмий - оновити сервіс, коли сервіс працює на декількох машинах, і якщо ми хочемо оновити послугу, це дуже і просто, наприклад, якщо ми хочемо оновити версію служби nginx.
docker service update –image nginx:1.14.0 sample
Крок 9: Вимкнення / зупинка / видалення.
- Щоб вимкнути будь-який конкретний вузол, скористайтеся командою нижче, яка змінює стан вузла на «злив».
docker node update –availability drain worker1
- Щоб видалити службу з усіх машин.
docker service rm sample
- Вийти з рою, який змінює статус "вниз".
docker swarm leave
- Щоб зупинити машину (запустіть з термінала докера, а не в менеджері чи робочій машині).
docker-machine stop worker1
docker-machine rm worker1
Переваги архітектури Докер Рой
Нижче наведено переваги архітектури Docker Swarm:
- Децентралізована конструкція: ми можемо керувати ройовими кластерами за допомогою команди roarm. Це дає єдиний p (мазь доступу для створення всього рою.
- Це дуже просто в порівнянні з Кубернетами.
- Висока доступність: Серед вузлів, доступних у рій, якщо майстер виходить з ладу, інший робочий вузол потребує додаткової оплати.
- Бажаний стан Примирення: Менеджер рою відстежує стан кластеру, щоб бажаний і фактичний стан завжди були однаковими.
- Коли ми визначаємо надмірну мережу для підключення до ваших послуг, менеджер рою призначає адреси контейнеру в мережі, що накривається, коли ми створюємо / оновлюємо контейнери
- Поновлення оновлень: оновлення послуг можна робити поступово, менеджер рою дозволяє задавати затримку між кожним оновленням без будь-якого простою.
Висновок
Докерський рій - це простий інструмент замість великих інструментів, які виконують завдання, Докер із роєм забезпечує оркестрацію, яка нам потрібна, легко налаштувати та доставити рідний за допомогою докерного двигуна, який ми все одно будемо встановлювати та використовувати.
Рекомендовані статті
Це посібник з архітектури Docker Swarm. Тут ми обговорюємо, як вузли та сервіси працюють в архітектурі докер-рою з їх перевагами. Ви також можете ознайомитись з іншими нашими пов’язаними статтями, щоб дізнатися більше -
- Докерська архітектура
- Що таке Докер Рой?
- Ройові програми розвідки
- Чи допомагає технологія рою допомагає спритним командам рости?