← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 26: Placement constraints

Технологія: Docker

Номер лабораторної: 26 · Рівень: middle

Тема: Docker Swarm: розміщення сервісів за constraints

Повний опис / сценарій лабораторної:

Мета: навчитися керувати розміщенням сервісів у Swarm через constraints та labels.



Крок 1. Переглянути список вузлів Swarm.

Команда: docker node ls

Пояснення: переконайся що є принаймні один manager вузол.



Крок 2. Додати label до вузла.

Команда: docker node update --label-add role=db node-id

Пояснення: заміни node-id на реальний ідентифікатор.



Крок 3. Переконатися що label застосовано.

Команда: docker node inspect node-id --format "{{.Spec.Labels}}"



Крок 4. Створити сервіс з constraint.

Команда: docker service create --name db26 --constraint node.labels.role==db redis:alpine

Пояснення: завдання запускатиметься тільки на вузлах з таким label.



Крок 5. Переглянути задачі сервісу.

Команда: docker service ps db26

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



Крок 6. Спробувати видалити label з цього вузла.

Команда: docker node update --label-rm role node-id

Пояснення: подивися як поводитиметься сервіс.



Крок 7. Перевірити статус задач після видалення label.

Команда: docker service ps db26

Пояснення: завдання можуть стати Pending якщо немає більше підходящих вузлів.



Крок 8. Повернути label або додати його іншому вузлу.

Пояснення: так Swarm знову зможе запустити завдання.



Крок 9. Видалити сервіс після тесту.

Команда: docker service rm db26



Крок 10. Міні звіт.

Завдання: опиши для яких ролей ти використовував би labels і constraints у реальному кластері.