Ответ
Scaling в Kubernetes — это процесс изменения количества подов (pods) или нод (nodes) для управления нагрузкой. Есть два основных типа:
- Horizontal Pod Autoscaler (HPA) — автоматически увеличивает/уменьшает количество подов на основе метрик (CPU, memory или custom metrics).
- Vertical Pod Autoscaler (VPA) — изменяет ресурсы (CPU/RAM) у существующих подов.
Пример HPA:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
Нюансы:
- HPA требует метрики от Metrics Server или Prometheus.
- VPA может требовать перезапуска подов.
- Cluster Autoscaler масштабирует ноды, если не хватает ресурсов.