← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: побачити як стратегія Recreate впливає на доступність сервісу у порівнянні з rolling update. Крок 1. Скопіювати yaml з попередньої лабораторної. Пояснення: використай strat-demo.yaml як основу для нового deployment. Крок 2. Створити новий deployment з назвою recreate-demo. Пояснення: заміни всі згадки імені щоб уникнути конфліктів. Крок 3. Задати стратегію типу Recreate. Пояснення: у spec strategy type вкажи Recreate і прибери розділ rollingUpdate. Крок 4. Застосувати deployment. Команда: kubectl apply -f recreate-demo.yaml Пояснення: буде створено початкові pod з образом nginx:1.25. Крок 5. Створити service для recreate-demo. Команда: kubectl expose deployment recreate-demo --name=recreate-svc --port=80 Пояснення: ми через нього будемо тестувати доступність. Крок 6. Запустити нескінченні http запити з pod клієнта. Команда: kubectl run rec-client --rm -it --image=radial/busyboxplus:curl --restart=Never -- sh -c "while true; do curl -s -o /dev/null -w "." recreate-svc; sleep 1; done" Пояснення: крапки показують успішні відповіді. Крок 7. Оновити образ deployment на нову версію. Команда: kubectl set image deployment/recreate-demo nginx=nginx:1.27 Пояснення: зі стратегією Recreate старі pod будуть спочатку видалені. Крок 8. Спостерігати за виводом клієнта. Пояснення: зверни увагу на період відсутності відповідей коли всі pod видалені а нові ще не створені. Крок 9. Порівняти з поведінкою RollingUpdate. Пояснення: проаналізуй різницю у даунтаймі між цими двома підходами. Крок 10. Міні звіт. Завдання: опиши сценарії де Recreate все ж прийнятний наприклад при несумісних змінах стану.