Kubernetes Maliyetlerini %40 Düşürme: Pratik Rehber
5+ yıllık Kubernetes cluster yönetimi deneyimimde, maliyet optimizasyonu konusunda en çok karşılaştığım sorun resource limits ve requests'lerin doğru ayarlanmaması. Bu rehberde, production ortamlarında test ettiğim ve %40'a kadar maliyet tasarrufu sağlayan teknikleri paylaşıyorum.
Resource Limits ve Requests Doğru Ayarlama
En büyük maliyet kaybı, pod'ların ihtiyaç duyduğundan çok daha fazla kaynak talep etmesinden kaynaklanıyor. İşte doğru ayarlama stratejileri:
apiVersion: v1
kind: Pod
metadata:
name: web-app
spec:
containers:
- name: web
image: nginx:latest
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"İpucu: Requests'i gerçek kullanıma göre ayarlayın. Limits'i ise %20-30 daha yüksek tutun.
Node Scaling Stratejileri
Cluster Autoscaler kullanarak gereksiz node'ları otomatik olarak kapatabilirsiniz. Ancak doğru konfigürasyon kritik:
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-autoscaler-status
namespace: kube-system
data:
nodes.min: "2"
nodes.max: "10"
scale-down-delay-after-add: "10m"
scale-down-unneeded-time: "10m"Spot Instances ile %70 Tasarruf
AWS Spot Instances veya Azure Spot VMs kullanarak %70'e kadar tasarruf sağlayabilirsiniz. Ancak dikkatli olun:
- Stateless uygulamalar için ideal
- Critical workload'lar için kullanmayın
- Multi-AZ deployment yapın
- Graceful shutdown implementasyonu şart
Maliyet İzleme ve Raporlama
Kubecost veya AWS Cost Explorer ile maliyetleri takip edin. Haftalık raporlar alarak gereksiz kaynakları tespit edin.
Dikkat: Spot instances kullanırken data loss riski var. Critical data için persistent volume'ları farklı instance type'larda saklayın.