HPA nedir?
- Docker & Kubernetes kursu
- İleri seviye
- Ders 37/70
- 4 dk
HorizontalPodAutoscaler ile otomatik ölçeklemeyi öğrenirsin.
HPA nedir?
HorizontalPodAutoscaler (HPA), bir Deployment'ın (ya da StatefulSet'in) kopya sayısını yüke göre otomatik değiştirir. Belirli aralıklarla (varsayılan 15 sn) pod'ların ölçümüne bakar ve hedefi tutturmak için gereken kopya sayısını hesaplar:
istenen = ceil( mevcut_kopya × mevcut_değer / hedef_değer )
# 4 kopya, ortalama CPU %90, hedef %60
ceil(4 × 90 / 60) = 6 kopya"Yatay" ölçekleme pod sayısını değiştirir; "dikey" ölçekleme (VPA) pod başına kaynağı değiştirir.
Komutla HPA
Hızlı bir HPA kubectl autoscale ile oluşturulur. kubectl get hpa mevcut ve hedef değeri yan yana gösterir:
$ kubectl autoscale deployment api --cpu-percent=70 --min=2 --max=10
horizontalpodautoscaler.autoscaling/api autoscaled
$ kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
api Deployment/api cpu: 35%/70% 2 10 2 1mUygulama Otomatik ölçekle
İki komut yaz: api deployment'ı için CPU hedefi %70, en az 2 en fazla 10 kopyalı bir HPA oluştur; HPA'ları listele.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl autoscale deployment api --cpu-percent=70 --min=2 --max=10
kubectl get hpaBeklenen çıktı
horizontalpodautoscaler.autoscaling/api autoscaled NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE api Deployment/api cpu: 35%/70% 2 10 2 30s
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 3 kopya, ortalama CPU %20, hedef %50 ise HPA kaç kopya ister (minReplicas 1 varsayılırsa)?
- 6
- 2 Doğru cevap
- 3
- 1
Açıklama: ceil(3 × 20 / 50) = ceil(1.2) = 2.
2 Deployment için otomatik ölçekleme oluştur.
kubectl ____ deployment api --cpu-percent=70 --min=2 --max=10
kubectl autoscale deployment api --cpu-percent=70 --min=2 --max=10
Açıklama: autoscale bir HPA nesnesi oluşturur.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
HPA |
Pod sayısını değiştirir |
VPA |
Pod kaynağını değiştirir |
TARGETS 35%/70% |
Mevcut/hedef |
15 sn |
Değerlendirme aralığı |