müfettiş
Moderatör
- Katılım
- 20 Ocak 2024
- Mesajlar
- 325
- Tepkime puanı
- 1
- Puanları
- 18
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).