Получить доступ

Как работает автомасштабирование в Kubernetes?

MiddleKubernetesPrometheus
Ещё спрашивают так:
  • Что такое HPA и Cluster Autoscaler?
  • Почему HPA не масштабирует под?
Коротко

HPA меняет число реплик по метрике: желаемые реплики = текущие × (текущее значение / целевое). Метрика CPU считается в процентах от requests — без requests HPA не работает. VPA меняет сами requests, Cluster Autoscaler (или Karpenter) добавляет узлы, когда поды не помещаются. KEDA масштабирует по внешним событиям — длине очереди, лагу Kafka, вплоть до нуля.

  • Нужен metrics-server (для CPU и памяти) или адаптер Prometheus для своих метрик
  • Стабилизация вниз (по умолчанию 5 минут) защищает от «пилы»
  • Масштабирование не мгновенное: метрика → решение → под → старт → прогрев

А ещё Для обработчиков очередей метрика CPU плохая — лучше лаг или длина очереди

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Расчёт. 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.
  • Причины, по которым масштабирование не срабатывает.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем