Kubernetes Maliyet Şoku: Neden Beklediğinizden Pahalı
Kubernetes'te maliyet şoku yaşadınız mı?
Kubernetes'e geçiş kararını alan şirketlerin çoğu ilk faturayı gördüğünde şok yaşıyor. Proje başında 'bulut tasarruf sağlayacak' dedikleri sistem, iki ay sonra beklenenin iki-üç katı maliyet çıkartabiliyor. Bu sadece AWS veya Azure fiyatlandırmasının aldatıcı olması değil; Kubernetes mimarisinin doğası gereği gelen sorunlar.
Ana sebep overprovisioning. Kubernetes'te pod'lar için CPU ve bellek talepleri (request) ve limitler (limit) tanımlamalısın. Çoğu ekip risk almamak için bu değerleri gerçek ihtiyacından çok daha yüksek ayarlıyor. Bir microservice'in aslında 256 MB bellek yeterse, 512 MB veya 1 GB tahsis ediliyor. Yüzlerce pod'la çarpılınca, sanal makineler (node'lar) boş kapasiteyle dolu kalıyor. Ödediğin ama kullanmadığın kapasite direkt maliyet.
İkinci sorun scheduler'ın davranışı. Kubernetes pod'ları dağıtırken talep (request) değerine göre node seçer. Eğer talepleri yüksek ayarladıysan, daha fazla node gerekir ve cluster daha büyür. Özellikle autoscaling açıksa, bir spike'ta (ani trafiğe) hızla yeni node'lar eklenir; trafiğin düştüğü saatlerde ise node'lar silinmez veya geç silinir.
Üçüncü nokta gözden kaçan bileşenler. Kubernetes kendisi de kaynak tüketir: etcd, kube-apiserver, controller-manager, scheduler. Bunun yanında logging, monitoring, ingress controller, service mesh (Istio, Linkerd) gibi eklentiler her biri ek pod'lar ve kaynaklar demek. Bir production cluster'ında sistem pod'ları toplam kapasitenin 15-25%'ini alabilir.
Dördüncü: veri transferi maliyeti. Pod'lar arası iletişim, özellikle farklı availability zone'larda, ücretlendirilir. Bir microservices mimarisi yanlış tasarlanmışsa, pod'lar arasında gereksiz trafik oluşur ve bu AWS/Azure'da hızla birikir.
Pratik çözümler var ama basit değil. Request ve limit değerlerini gerçek ölçümlerle (Prometheus, metrics-server) belirlemek gerekir. Vertical Pod Autoscaler (VPA) gibi araçlar bunu otomatik hale getiriyor ama test ortamında başlamalısın. Reserved Instances veya Spot Instance'lar kullanmak maliyeti 40-70% düşürebilir, ama iş yükü türüne göre farklı stratejiler gerekir.
Bu noktada Kubernetes'in gerçeği: tasarruf sağlayan bir araç değil, doğru yapılandırıldığında tasarruf sağlayan araçtır. Hatalı konfigürasyon ile kendi veri merkezinde çalıştırmaktan daha pahalı olabilir. İlk kurulumda maliyet analizi ve kapasite planlama atlanırsa, fatura şoku kaçınılmaz.
0 yorum