Azure Kubernetes Service Performans Optimizasyonu
Merhaba, bu yazımda Azure Kubernetes Service (AKS) üzerinde uygulama performansını artırmak için kullanabileceğiniz kaynak yönetimi ve ölçeklendirme stratejilerinden bahsedeceğim. Özellikle AKS düğümlerinin doğru boyutlandırılması, HPA (Horizontal Pod Autoscaler) kullanımı ve kaynak limitlerinin doğru konfigüre edilmesi gibi yöntemlerle verimli performans elde etmenin yollarını inceleyeceğiz. Hadi başlayalım!
AKS Düğümlerini Doğru Boyutlandırma
Sahada en sık karşılaştığım sorunlardan biri, AKS düğümlerinin yanlış boyutlandırılmasıdır. Yanlış boyutlandırılmış düğümler, kaynak israfına ve performans düşüşüne yol açar. İlk adımda, iş yüklerinizi analiz ederek ihtiyaç duyduğunuz işlemci ve bellek kaynaklarını belirlemeniz gerekiyor.
Diyelim ki; mevcut iş yükünüz için 4 CPU ve 16 GB RAM’e ihtiyacınız var. AKS üzerinde bu konfigürasyona uygun bir VM tipi seçmek önemlidir. Microsoft’un sunduğu VM boyutları arasında, iş yükünüze uygun olanı seçerken maliyetleri de göz önünde bulundurmalısınız.
Örnek bir konfigürasyon:
az aks create --resource-group MyResourceGroup --name MyManagedCluster --node-vm-size Standard_DS3_v2

Horizontal Pod Autoscaler Kullanımı
HPA, pod’ların CPU ve RAM kullanımını izleyerek otomatik olarak ölçeklendirme yapmanızı sağlar. Böylece iş yüklerinizin artmasına bağlı olarak ihtiyaç duyulan kaynakları dinamik bir şekilde yönetebilirsiniz.
Örneğin, uygulamanızın CPU kullanımına göre ölçeklendirme yapmak istiyorsanız aşağıdaki komutu kullanarak HPA konfigürasyonunu yapılandırabilirsiniz:
kubectl autoscale deployment --cpu-percent=50 --min=2 --max=10
Bu komut, deployment-name adındaki pod’un CPU kullanımı %50’yi aştığında, pod sayısını minimum 2, maksimum 10 olacak şekilde ölçeklendirecektir. Burada dikkat edilmesi gereken nokta, HPA değerlerinizi iş yükünüzün dalgalanma eğilimlerine uygun şekilde ayarlamaktır.

Kaynak Limitlerinin Doğru Konfigüre Edilmesi
Kaynak limitleri, uygulamalarınızın belirli sınırlar içinde çalışmasını sağlayarak, sistem kaynaklarının adil bir şekilde dağıtılmasını ve aşırı yüklenmelerin önlenmesini sağlar. Her pod için minimum ve maksimum kaynak taleplerini belirttiğinizde, Kubernetes scheduler bu talepleri dikkate alarak en uygun düğümde çalıştırır.
Örnek bir YAML dosyası ile kaynak limiti konfigürasyonu:
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: myimage
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
Burada, requests ile pod’un başlangıçta isteyeceği kaynak miktarını, limits ile de aşamayacağı maksimum kaynak miktarını belirliyorsunuz. Bu tür ayarlar sayesinde sistem kaynaklarınızın adil kullanımını sağlamak mümkün hale geliyor.
Yanlış Bilinen Noktaları Düzeltelim
Sıkça karşılaştığım bir yanlış uygulama, tüm pod’lara aynı kaynak limitlerinin atanmasıdır. Her iş yükünün farklı gereksinimleri olduğunu unutmamak gerekiyor. Özellikle kaynak tüketimi yoğunlukları değişken olan iş yükleri için farklı pod konfigürasyonları oluşturmak daha verimlidir.
Bir diğer sık yapılan hata ise, HPA kullanırken minimum ve maksimum pod sayılarını çok geniş bir aralıkta bırakmaktır. Bu, kontrolsüz bir şekilde kaynak tüketimine neden olabilir. İş yükünüzün geçmiş performans verilerini inceleyerek uygun min-max değerlerini belirlemek daha sağlıklı sonuçlar doğurur.
AKS üzerinde performans optimizasyonu yaparken kaynak yönetimi ve doğru ölçeklendirme stratejilerini uygulamak önem taşıyor. Düğümlerin doğru boyutlandırılması, HPA kullanımı ve kaynak limitlerinin etkili konfigürasyonu ile iş yüklerinizi daha verimli ve kararlı bir şekilde yönetebilirsiniz. Faydalı olması dileğiyle.
Bu yazıyı hazırlarken kaynak üzerindeki dokümantasyondan da yararlandım. Konunun orijinal detaylarına göz atmak isterseniz tavsiye ederim.
Share this content:





Yorum gönder