Масштабирование в Kubernetes с помощью HPA

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

kuberneteshpaмасштабирование

👁 В Kubernetes можно настроить автоматическое масштабирование приложений, чтобы они справлялись с нагрузкой, увеличивая или уменьшая количество реплик на основе метрик. Это значительно упрощает управление приложениями в продакшн-среде, когда трафик изменяется.

Для автоматического масштабирования на основе метрики CPU или других ресурсов используется объект Horizontal Pod Autoscaler (HPA). Для его настройки достаточно указать минимальное и максимальное количество реплик, а также пороговое значение для метрик.

📝 Пример YAML-файла для настройки HPA для приложения, который масштабируется по CPU:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 50

📌 В этом примере HorizontalPodAutoscaler следит за средним использованием CPU, и если оно превышает 50%, количество реплик будет увеличиваться до 10. Если нагрузка снижается, реплики уменьшатся до минимального значения (2).

❗️ Этот подход позволяет Kubernetes автоматически управлять ресурсами, адаптируя количество реплик под реальную нагрузку без вмешательства оператора. Работает отлично для микросервисных архитектур и масштабируемых приложений.

tags: #инфраструктура #k8s

❤️ @recura_tech

YAML-конфигурация HorizontalPodAutoscaler (HPA) для Kubernetes: показывает minReplicas, maxReplicas и масштабирование по CPU, логотип RECURA.
Пример YAML для HPA: масштабирование по CPU с minReplicas 2 и maxReplicas 10.

Читайте так же