← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися відрізняти startupProbe від livenessProbe для повільного старту додатка. Крок 1. Створити образ або використати контейнер з повільним стартом. Ідея: використати nginx який перед стартом спить декілька десятків секунд. Пояснення: це імітує важкий додаток який довго піднімається. Крок 2. Написати deployment з livenessProbe без startup. Пояснення: зроби httpGet probe на шлях / з невеликим initialDelaySeconds. Крок 3. Застосувати deployment. Команда: kubectl apply -f deploy-liveness-only.yaml Пояснення: pod можуть потрапити в crash loop через те що додаток ще не встиг стартувати. Крок 4. Перевірити статус pod. Команда: kubectl get pods -l app=slow-app Пояснення: дивись чи збільшується лічильник перезапусків. Крок 5. Додати startupProbe у yaml. Дія: додай startupProbe на той самий шлях але з великим failureThreshold і periodSeconds. Пояснення: поки startupProbe не завершиться успішно livenessProbe не застосовується. Крок 6. Оновити deployment. Команда: kubectl apply -f deploy-startup-liveness.yaml Пояснення: pod мають перейти в стабільний стан без перезапусків. Крок 7. Перевірити опис pod. Команда: kubectl describe pod <slow-app-pod> Пояснення: знайди секції startup, readiness і liveness та їх параметри. Крок 8. Зімітувати зависання після старту. Пояснення: зміни контейнер так щоб він перестав відповідати після певного часу і подивись як спрацює liveness. Крок 9. Проаналізувати події. Команда: kubectl describe pod <slow-app-pод> | grep -i probe -n Пояснення: у events побачиш історію успішних і невдалих перевірок. Крок 10. Міні звіт. Завдання: опиши коли потрібна startupProbe і чому її не можна замінити тільки великим initialDelaySeconds.