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.


 

Dağcan Nural

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.

Related Posts

AKS Pod Otomatik Ölçeklendirme Ayarları Rehberi

AKS pod otomatik ölçeklendirme ayarları için HPA, Cluster Autoscaler ve KEDA seçimlerini; kaynak istekleri, sınırlar ve üretim senaryolarını anlatır.

Azure Blob Storage ile Statik Web Sitesi Barındırma

Azure Blob Storage ile sunucusuz statik web sitesi barındırma rehberi. Hızlı ve kolay adımlar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You Missed

VMware ESXi 8.0 Update 3e Yenilikleri ve Avantajları

VMware ESXi 8.0 Update 3e Yenilikleri ve Avantajları

Google Cloud Gemini Enterprise Agent Platform Tanıtımı

Google Cloud Gemini Enterprise Agent Platform Tanıtımı

Claude Opus 4.7 ile Web Tasarım ve Sunum Araçları

Claude Opus 4.7 ile Web Tasarım ve Sunum Araçları

HPE ProLiant Sunucularda UEFI Ayarlarını Optimize Etme

HPE ProLiant Sunucularda UEFI Ayarlarını Optimize Etme

Microsoft 365 Copilot: Yeni Özellikler ve Avantajlar

Microsoft 365 Copilot: Yeni Özellikler ve Avantajlar

GPO Yedekleme Nasıl Yapılır?

GPO Yedekleme Nasıl Yapılır?