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