← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися керувати розміщенням сервісів у 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 у реальному кластері.