×
Azure Kubernetes Service Perform

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.

Azure-Kubernetes-Service-Perform-1-1024x752 Azure Kubernetes Service Performans Optimizasyonu

Örnek bir konfigürasyon:

az aks create --resource-group MyResourceGroup --name MyManagedCluster --node-vm-size Standard_DS3_v2
Azure-Kubernetes-Service-Perform-2-1024x775 Azure Kubernetes Service Performans Optimizasyonu

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.

Azure-Kubernetes-Service-Perform-3-1024x984 Azure Kubernetes Service Performans Optimizasyonu

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.

Azure-Kubernetes-Service-Perform-4-1024x919 Azure Kubernetes Service Performans Optimizasyonu

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:

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. Beykent Üniversitesi'nde Yönetim Bilişim Sistemleri Bölümü'nde yüksek lisans eğitimimi tamamladım. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde System Engineer pozisyonunda çalışmaktayım. Sektörde 20 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Şu an Yapay Zeka Yüksek Lisansı yapıyorum. Oldukça güzel projeler geliştiriyorum. Sayfanın en alt kısmından Linkedin profilime ulaşabilirsiniz. Bilgi ve tecrübemi bu blog üzerinde üzerinde paylaşıyorum.

Yorum gönder