[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-kubernetes-chto-takoe-horizontal-pod-autoscaler-hpa":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},1323,"chto-takoe-horizontal-pod-autoscaler-hpa",26,"kubernetes","Kubernetes","☸️","Что такое Horizontal Pod Autoscaler (HPA)?","HPA (Horizontal Pod Autoscaler) — контроллер, который автоматически масштабирует количество Pod'ов в Deployment в зависимости от наблюдаемых метрик.\n\n### Принцип работы\n\n1. HPA периодически (по умолчанию каждые 15 секунд) проверяет текущие метрики\n2. Сравнивает текущее значение с целевым\n3. Вычисляет необходимое количество реплик по формуле:\n   `desiredReplicas = ceil(currentReplicas * (currentMetricValue \u002F desiredMetricValue))`\n4. Масштабирует Deployment\n\n### Типы метрик\n\n| Тип | Источник | Пример |\n|---|---|---|\n| Resource metrics | Metrics Server (CPU, память) | CPU utilization 70% |\n| Custom metrics | Prometheus | Запросы в секунду, размер очереди |\n| External metrics | Внешние системы | Длина очереди в RabbitMQ\u002FKafka |\n\n\u003Cdetails>\n\u003Csummary>Пример манифеста HPA\u003C\u002Fsummary>\n\n```yaml\napiVersion: autoscaling\u002Fv2\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: my-java-app-hpa\nspec:\n  scaleTargetRef:\n    apiVersion: apps\u002Fv1\n    kind: Deployment\n    name: my-java-app\n  minReplicas: 2\n  maxReplicas: 10\n  metrics:\n    - type: Resource\n      resource:\n        name: cpu\n        target:\n          type: Utilization\n          averageUtilization: 70\n    - type: Resource\n      resource:\n        name: memory\n        target:\n          type: Utilization\n          averageUtilization: 80\n  behavior:\n    scaleDown:\n      stabilizationWindowSeconds: 300\n      policies:\n        - type: Percent\n          value: 10\n          periodSeconds: 60\n    scaleUp:\n      stabilizationWindowSeconds: 60\n      policies:\n        - type: Percent\n          value: 50\n          periodSeconds: 60\n```\n\n\u003C\u002Fdetails>\n\n### Команды для работы с HPA\n\n```bash\n# Создать HPA через kubectl (простой вариант)\nkubectl autoscale deployment my-java-app --cpu-percent=70 --min=2 --max=10\n\n# Посмотреть состояние HPA\nkubectl get hpa\n\n# Подробная информация\nkubectl describe hpa my-java-app-hpa\n```\n\n### Важные моменты\n\n- Для работы HPA необходим Metrics Server в кластере\n- Для Pod'ов обязательно должны быть заданы Requests по CPU\u002Fпамяти — иначе HPA не сможет рассчитать процент утилизации\n- Stabilization window предотвращает слишком частое масштабирование (flapping)\n- HPA масштабирует горизонтально (количество Pod'ов). Для вертикального масштабирования (ресурсы Pod'а) существует VPA (Vertical Pod Autoscaler)\n\n> **На собеседовании:** важно знать формулу расчёта реплик и что без Requests HPA не работает. Частая ошибка — забыть про stabilization window и не знать разницу между HPA и VPA.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":19,"featuredSnippetReady":22},"Что такое Horizontal Pod Autoscaler (HPA)? — Gymterview","HPA (Horizontal Pod Autoscaler) — контроллер, который автоматически масштабирует количество Pod'ов в Deployment в зависимости от наблюдаемых метрик.","HPA (Horizontal Pod Autoscaler) — контроллер, который автоматически масштабирует количество Pod'ов в Deployment в зависи",[7,13],true]