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

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

Kubernetes Лабораторна 49: Стратегія Recreate та її наслідки

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

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

Тема: Recreate стратегія та даунтайм

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

Мета: побачити як стратегія 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 все ж прийнятний наприклад при несумісних змінах стану.