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

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

Kubernetes Лабораторна 29: PodDisruptionBudget

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

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

Тема: PodDisruptionBudget для високої доступності

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

Мета: навчитися використовувати poddisruptionbudget щоб захистити сервіс під час оновлень нод.



Крок 1. Створити deployment з кількома replica.

Команда: kubectl create deployment pdb-demo --image=nginx --replicas=4

Пояснення: чим більше replica тим наочніше вплив pdb.



Крок 2. Перевірити pod deployment.

Команда: kubectl get pods -l app=pdb-demo

Пояснення: переконайся що всі pod running.



Крок 3. Написати yaml для poddisruptionbudget.

Ідея: selector app=pdb-demo і minAvailable 3.

Пояснення: має залишатися не менше трьох працюючих pod.



Крок 4. Застосувати pdb.

Команда: kubectl apply -f pdb-demo.yaml

Пояснення: тепер voluntary disruption типу drain обмежені.



Крок 5. Спробувати cordon і drain ноду.

Команди: kubectl cordon <імя-ноди>; kubectl drain <імя-ноди> --ignore-daemonsets --delete-emptydir-data

Пояснення: kube контролер перевірятиме pdb перед видаленням pod.



Крок 6. Перевірити статус pdb.

Команда: kubectl get pdb

Пояснення: подивись скільки pod доступні і скільки disruptions дозволено.



Крок 7. Переглянути describe pdb.

Команда: kubectl describe pdb pdb-demo

Пояснення: у events можна побачити блокування disrupt дій.



Крок 8. Зменшити replicas deployment.

Команда: kubectl scale deployment pdb-demo --replicas=2

Пояснення: тепер умови pdb можуть не виконуватися.



Крок 9. Перевірити стан pdb після масштабування.

Команда: kubectl get pdb pdb-demo

Пояснення: подивись значення current і desired.



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

Завдання: опиши як pdb допомагає підтримувати високу доступність під час планових робіт на нодах.