hpa
Kubernetes’te HPA (Horizontal Pod Autoscaler), podların otomatik olarak ölçeklenmesini sağlayan bir bileşendir. HPA, belirlediğiniz metrikler (örn. CPU kullanımı, bellek kullanımı) üzerinden belirli sınırlara ulaşıldığında pod sayısını artırabilir veya azaltabilir.
Örneğin, bir Deployment’ınızın CPU kullanımı %80’in üzerine çıktığında otomatik olarak daha fazla pod eklenmesini ve %50’nin altına düştüğünde pod sayısının azaltılmasını istiyorsanız, HPA kullanarak bunu gerçekleştirebilirsiniz.
HPA ile Deployment
‘ı birlikte kullanmak için örnek bir manifest:
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
Bu manifestte:
- Bir
Deployment
tanımlandı. Başlangıçta 3 replica ile başlar. - Her pod için CPU talepleri (
requests
) ve sınırlamaları (limits
) tanımlandı. Bu, HPA’nın ölçeklendirme kararlarını alırken kullanılacak metrikleri doğru bir şekilde değerlendirmesi için önemlidir. HorizontalPodAutoscaler
tanımlandı. Bu, önceden tanımladığımızDeployment
‘ı hedef alır.- Pod sayısının otomatik ölçeklendirme için minimum ve maksimum değerleri tanımlandı. Bu örnekte, en az 1, en fazla 10 pod çalıştırılabilir.
- CPU kullanımının %80’in üzerine çıktığında HPA’nın yeni pod’lar başlatmasını istiyoruz.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
behavior:
scaleDown:
policies:
- periodSeconds: 15
type: Pods
value: 1
- periodSeconds: 15
type: Percent
value: 80
selectPolicy: Max
stabilizationWindowSeconds: 0
scaleUp:
policies:
- periodSeconds: 15
type: Pods
value: 1
selectPolicy: Min
stabilizationWindowSeconds: 0
maxReplicas: 10
metrics:
- resource:
name: cpu
target:
averageUtilization: 20
type: Utilization
type: Resource
minReplicas: 2
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
Başkaları
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#autoscaling-on-metrics-not-related-to-kubernetes-objects