Cloud Server ile Kubernetes Horizontal Pod Autoscaling Yapılandırması

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.

Vps.com.tr