Kubernetes Autoscaling: HPA ve VPA ile Kaynak Yönetimi

müfettiş

Moderatör
Katılım
20 Ocak 2024
Mesajlar
325
Tepkime puanı
1
Puanları
18

images (1).png


Kubernetes Autoscaling: HPA ve VPA ile Kaynak Yönetimi​


Giriş: Elastik Altyapı​

Bulut bilişimin en büyük vaadi "Elastikiyet"tir. Yani sistemin yük arttığında büyümesi, yük azaldığında küçülmesidir. Eğer gece 03:00'te trafiğiniz azaldığında sunucularınız hala tam kapasite çalışıyorsa, paranızı çöpe atıyorsunuz demektir.

Kubernetes (K8s), bu elastikiyeti sağlamak için üç farklı otomatik ölçekleme (Autoscaling) mekanizması sunar: HPA, VPA ve Cluster Autoscaler. Bu makalede, podlarınızı ve sunucularınızı otopilota nasıl alacağınızı inceleyeceğiz.

Metrics Server: K8s'in Gözü​

Otomatik ölçeklemenin çalışması için K8s'in önce "Ne kadar kaynak tüketiliyor?" sorusunu bilmesi gerekir. Bunun için kümeye Metrics Server eklentisi kurulmalıdır. Bu eklenti, podların CPU ve RAM kullanımını anlık olarak izler.

1. Horizontal Pod Autoscaler (HPA) - Yatay Ölçekleme​

HPA, en yaygın kullanılan yöntemdir. Mantığı basittir: "Çoğaltmak".
  • Senaryo: Bir Web uygulamanız (Pod) var ve %50 CPU limiti koydunuz. Trafik arttı ve CPU kullanımı %80'e çıktı.
  • Aksiyon: HPA bunu fark eder ve Pod sayısını 1'den 2'ye çıkarır. Yük ikiye bölünür, CPU kullanımı %40'a düşer. Trafik azalınca HPA, fazla podları siler.
  • Kullanım: Web siteleri, API'ler gibi durumsuz (Stateless) uygulamalar için idealdir.

2. Vertical Pod Autoscaler (VPA) - Dikey Ölçekleme​

VPA'nın mantığı şudur: "Büyütmek".
  • Senaryo: Bir veritabanı Pod'unuz var. CPU'su yetmiyor. Veritabanını 2 kopyaya çıkarmak (HPA) zordur.
  • Aksiyon: VPA, Pod'un kendisine ayrılan kaynağı (Requests/Limits) artırır. Pod'u 1 CPU'dan 4 CPU'ya çıkarır.
  • Kritik Uyarı: VPA, kaynağı artırmak için Pod'u yeniden başlatmak (Restart) zorundadır. Bu yüzden kesinti tolere edemeyen sistemlerde dikkatli kullanılmalıdır.
  • Öneri: VPA'yı genellikle "Auto" modunda değil, "Off" modunda (Sadece öneri veren mod) kullanmak daha güvenlidir. Size "Bu Pod'a çok az RAM vermişsin, artırmalısın" der, kararı siz verirsiniz.

3. Cluster Autoscaler (CA) - Altyapı Ölçekleme​

HPA pod sayısını artırdı, 10 poddan 100 poda çıktınız. Ama fiziksel sunucularınızın (Node) kapasitesi doldu. Yeni podlar "Pending" (Beklemede) durumunda kaldı.
  • Aksiyon: Cluster Autoscaler (CA), bulut sağlayıcısı (AWS/Google/Azure) ile konuşur. "Bana acil 2 tane daha sanal sunucu (EC2/VM) aç" der. Yeni sunucular açılınca, bekleyen podlar oraya yerleşir.
  • Küçülme: Yük azaldığında ve sunucular boşaldığında, CA o sunucuları kapatır ve faturayı düşürür.

Altın Kural: HPA ve VPA'yı Karıştırmayın!​

Aynı metrik (örneğin CPU) üzerinde hem HPA hem VPA kullanmak tehlikelidir.
  • VPA: "CPU yüksek, ben bu Pod'u büyüteyim" der.
  • HPA: "CPU yüksek, ben yeni Pod açayım" der.
  • Sonuç: Sonsuz bir döngü ve kaos. (HPA'yı CPU/RAM ile, VPA'yı ise başka bir metrikle kullanmak mümkündür ama önerilmez).

Sonuç​

Doğru yapılandırılmış bir Kubernetes kümesi; Black Friday günü 100 sunucuya çıkar, normal günde 5 sunucuya iner. Bu otomasyon, DevOps mühendisinin gece rahat uyumasını ve şirketin bütçesinin korunmasını sağlar.
 
Geri
Üst