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

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

Kubernetes Лабораторна 12: HPA для масштабування по навантаженню

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

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

Тема: Horizontal Pod Autoscaler по CPU

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

Мета: навчитися створювати horizontal pod autoscaler для deployment.



Крок 1. Переконатися, що в кластері є metrics server.

Команда: kubectl get deployment metrics-server -n kube-system

Пояснення: якщо немає, встанови metrics server згідно офіційної документації.



Крок 2. Створити deployment з ресурсними лімітами.

Ідея: простий веб сервіс, наприклад nginx або http echo, з заданими requests і limits по cpu.

Пояснення: без resources hpa не зможе коректно працювати.



Крок 3. Створити service для deployment.

Команда: kubectl expose deployment hpa-web --name=hpa-web-svc --port=80

Пояснення: сервіс потрібен для навантажувальних тестів.



Крок 4. Створити hpa ресурс.

Команда: kubectl autoscale deployment hpa-web --cpu-percent=50 --min=1 --max=5

Пояснення: hpa прагнутиме тримати середнє завантаження cpu на рівні 50 відсотків.



Крок 5. Перевірити стан hpa.

Команда: kubectl get hpa

Пояснення: подивись current cpu і desired поди.



Крок 6. Створити pod для навантаження сервісу.

Ідея: pod з утилітою hey або ab, що посилає багато http запитів на hpa-web-svc.

Пояснення: це підвищить завантаження cpu.



Крок 7. Спостерігати за hpa.

Команда: kubectl get hpa -w

Пояснення: подивись, як змінюється кількість pod при рості навантаження.



Крок 8. Зменшити навантаження.

Дія: зупини навантажувальний pod або зменш інтенсивність запитів.

Пояснення: через певний час hpa має зменшити кількість pod.



Крок 9. Переглянути історію масштабування.

Команда: kubectl describe hpa hpa-web

Пояснення: там видно події зміни числа реплік.



Крок 10. Міні звіт.

Завдання: опиши, які метрики можна використати для autoscaling, крім cpu.