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

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

Kubernetes Лабораторна 23: Taint і toleration

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

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

Тема: Taint і toleration

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

Мета: навчитися маркувати ноди taint і дозволяти лише певним pod працювати на них.



Крок 1. Вибрати ноду для спеціальних задач.

Команда: kubectl get nodes

Пояснення: обери ноду яку хочеш зробити спеціальною наприклад для критичних сервісів.



Крок 2. Додати taint до ноди.

Команда: kubectl taint nodes <імя-ноди> dedicated=critical:NoSchedule

Пояснення: звичайні pod без toleration не зможуть розміститися на цій ноді.



Крок 3. Створити звичайний deployment без toleration.

Команда: kubectl create deployment taint-test --image=nginx --replicas=2

Пояснення: scheduler не повинен ставити ці pod на tainted ноду.



Крок 4. Перевірити розміщення pod.

Команда: kubectl get pods -l app=taint-test -o wide

Пояснення: переконайся що жоден pod не запущений на tainted ноді.



Крок 5. Додати toleration до deployment.

Дія: відредагуй deployment та додай у spec template spec tolerations з key=dedicated value=critical effect=NoSchedule.

Пояснення: тепер pod можуть бути запущені і на tainted ноді.



Крок 6. Оновити deployment.

Команда: kubectl apply -f taint-test.yaml

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



Крок 7. Перевірити нове розміщення pod.

Команда: kubectl get pods -l app=taint-test -o wide

Пояснення: принаймні один pod має бути на tainted ноді.



Крок 8. Перевірити describe ноди.

Команда: kubectl describe node <імя-ноди> | grep -i taint -n

Пояснення: побачиш активні taints які впливають на розміщення.



Крок 9. Прибрати taint.

Команда: kubectl taint nodes <імя-ноди> dedicated=critical:NoSchedule-

Пояснення: мінус в кінці видаляє taint.



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

Завдання: опиши як можна використовувати taints для виділених нод під бази даних або системні сервіси.