Modern uygulama altyapılarında yük dengeleme ve otomatik ölçeklenebilirlik, yüksek erişilebilirlik ve performans açısından kritik rol oynar. Kubernetes, bu ihtiyaçlara cevap veren güçlü bir orkestrasyon sistemidir. Özellikle Cloud Server altyapılarında Horizontal Pod Autoscaler (HPA) kullanarak yük altında otomatik olarak pod sayısını artırmak veya azaltmak mümkündür. Bu yazıda, Cloud Server üzerinde HPA’nın nasıl yapılandırıldığını adım adım ele alıyoruz.
Horizontal Pod Autoscaler (HPA) Nedir?
Kubernetes Horizontal Pod Autoscaler, belirlenen metriklere göre (örneğin CPU, bellek kullanımı veya özel metrikler) bir deployment, replica set veya statefulset içindeki pod’ların sayısını otomatik olarak ayarlayan bir denetleyicidir.
Kısaca:
- Yük artınca pod sayısını artırır
- Yük azalınca pod sayısını azaltır
- Optimum kaynak kullanımı sağlar
Gereksinimler
- Cloud Server üzerinde çalışan Kubernetes kümesi (örneğin K3s, kubeadm kurulumu)
metrics-server
bileşeninin kurulmuş ve çalışır durumda olması- Hedef workload’un minimum 1, maksimum X pod ile tanımlanmış olması
Adım Adım HPA Yapılandırması
1. Metrics Server Kurulumu
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Not: Bazı Cloud Server altyapılarında özel DNS ya da TLS ayarları gerekebilir.
2. Deployment Oluşturma Örneği
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
resources:
requests:
cpu: "100m"
limits:
cpu: "500m"
3. HPA Tanımı
kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=1 --max=10
Bu komut:
- CPU kullanımı %50’yi geçerse
- Minimum 1, maksimum 10 pod arasında ölçekleme yapar
4. Durumu İzleme
kubectl get hpa
Aktif olarak CPU kullanımı artarsa pod sayısının otomatik değiştiğini gözlemleyebilirsiniz.
Cloud Server’da Uygulama
HPA’yı verimli kullanmak için:
- Cloud Server altyapınızda yeterli CPU/RAM rezervi bırakın
- Pod sayısı arttığında IP, storage ve ağ kaynaklarının yetersiz kalmamasına dikkat edin
- vps.com.tr gibi özelleştirilebilir Cloud Server sağlayıcılarında kaynak sınırlarını esnek belirleyebilirsiniz
Gelişmiş Senaryo: Özel Metriklerle HPA
HPA sadece CPU ile sınırlı değildir. Prometheus Adapter kullanarak özel metriklerle (örneğin API yanıt süresi, kuyruk boyutu) de autoscaling yapılabilir.
Sonuç
Kubernetes Horizontal Pod Autoscaler, Cloud Server üzerinde uygulamaların performansını artırırken gereksiz kaynak kullanımını önlemeye olanak tanır. Özellikle trafik dalgalanmaları yaşayan projeler için HPA, sürdürülebilir bir altyapının temel bileşenlerinden biridir.