Как работает автомасштабирование в Kubernetes?
- Что такое HPA и Cluster Autoscaler?
- Почему HPA не масштабирует под?
HPA меняет число реплик по метрике: желаемые реплики = текущие × (текущее значение / целевое). Метрика CPU считается в процентах от requests — без requests HPA не работает. VPA меняет сами requests, Cluster Autoscaler (или Karpenter) добавляет узлы, когда поды не помещаются. KEDA масштабирует по внешним событиям — длине очереди, лагу Kafka, вплоть до нуля.
- Нужен metrics-server (для CPU и памяти) или адаптер Prometheus для своих метрик
- Стабилизация вниз (по умолчанию 5 минут) защищает от «пилы»
- Масштабирование не мгновенное: метрика → решение → под → старт → прогрев
А ещё Для обработчиков очередей метрика CPU плохая — лучше лаг или длина очереди
Подробно
Расчёт. 4 реплики, средняя загрузка 90% от requests, цель 60% → ceil(4 × 90 / 60) = 6 реплик.
Почему не масштабирует:
- не заданы requests — процент считать не от чего;
- нет metrics-server или метрика недоступна (
kubectl describe hpa); - достигнут maxReplicas;
- поды в Pending: нет места на узлах, а Cluster Autoscaler не настроен.
Практика:
- цель 50–70% CPU оставляет запас на время, пока поднимаются новые поды;
- быстрый старт приложения ускоряет реакцию;
- minReplicas не меньше 2–3 для отказоустойчивости;
- не сочетать HPA и VPA на одной метрике CPU.
Пример
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata: { name: orders }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: orders }
minReplicas: 3
maxReplicas: 20
metrics:
- type: Resource
resource: { name: cpu, target: { type: Utilization, averageUtilization: 60 } }Что хотят услышать
- Формула HPA и зависимость от requests.
- VPA, Cluster Autoscaler, KEDA.
- Причины, по которым масштабирование не срабатывает.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Меняет число реплик по метрике; CPU — % от requests
- ✗HPA работает по CPU без requests — считает загрузку от ядер узла
- ✗HPA подстраивает requests и limits пода под фактическое потребление ресурсов
- ✗HPA добавляет узлы в кластер, когда подам не хватает места
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.