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

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

Kubernetes Лабораторна 26: Startup probe для повільних сервісів

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

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

Тема: Startup probe проти liveness

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

Мета: навчитися відрізняти 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.