KEDA ile Kubernetes'te Olay Güdümlü Uygulama Ölçeklendirme: İleri Düzey Stratejiler ve En İyi Uygulamalar - BirCloud Blog
Bulut Bilişim

KEDA ile Kubernetes’te Olay Güdümlü Uygulama Ölçeklendirme: İleri Düzey Stratejiler ve En İyi Uygulamalar

📖 6 dakika okuma süresi

Giriş

Kubernetes, modern uygulama geliştirme ve dağıtımının vazgeçilmezi haline geldi. Ancak, kaynak kullanımını optimize etmek ve uygulamaların talebe göre ölçeklenmesini sağlamak her zaman kolay olmamıştır. İşte tam bu noktada, Kubernetes Event-Driven Autoscaling (KEDA) devreye giriyor. KEDA, Kubernetes üzerindeki uygulamaların olay güdümlü bir şekilde otomatik olarak ölçeklenmesini sağlayan açık kaynaklı bir projedir. Bu yazıda, KEDA’nın ne olduğunu, avantajlarını, kullanım senaryolarını ve Kubernetes ortamında nasıl kurulup yapılandırılacağını detaylı bir şekilde inceleyeceğiz. Ayrıca, BirCloud’un bu konudaki uzmanlığını ve sunduğu çözümleri de ele alacağız.

KEDA Nedir?

KEDA, Kubernetes’te çalışan uygulamaların, çeşitli olay kaynaklarına (event sources) tepki olarak otomatik olarak ölçeklenmesini sağlayan bir Kubernetes operatörüdür. Geleneksel Kubernetes Horizontal Pod Autoscaler (HPA) sadece CPU ve bellek kullanımına göre ölçekleme yaparken, KEDA çok daha geniş bir metrik yelpazesini destekler. Örneğin, Kafka kuyruğundaki mesaj sayısı, Azure Service Bus’taki kuyruk uzunluğu, Prometheus metrikleri veya herhangi bir özel metrik KEDA ile ölçekleme tetikleyicisi olarak kullanılabilir.

KEDA’nın temel amacı, uygulama geliştiricilerin ve operatörlerin, altyapı kaynaklarını verimli bir şekilde kullanmalarını ve uygulamalarının talebe göre otomatik olarak ölçeklenmesini sağlayarak, performansı optimize etmelerini kolaylaştırmaktır. KEDA, Kubernetes’in yerel yeteneklerini genişleterek, olay güdümlü mimarilerin Kubernetes üzerinde daha kolay ve verimli bir şekilde uygulanmasına olanak tanır.

KEDA’nın Avantajları

  • Olay Güdümlü Ölçekleme: KEDA, uygulamaların gerçek zamanlı olaylara tepki vererek ölçeklenmesini sağlar. Bu, kaynak kullanımını optimize eder ve maliyetleri düşürür.
  • Geniş Metrik Desteği: KEDA, çok çeşitli olay kaynaklarını ve metrikleri destekler. Bu, farklı türdeki uygulamaların ve iş yüklerinin ölçeklenmesi için esneklik sağlar.
  • Kolay Entegrasyon: KEDA, Kubernetes ile kolayca entegre olur ve mevcut Kubernetes araçları ve iş akışlarıyla uyumlu çalışır.
  • Otomatik Ölçekleme: KEDA, uygulamaların otomatik olarak sıfıra (scale-to-zero) ölçeklenmesini destekler. Bu, kaynak kullanımını daha da optimize eder ve maliyetleri azaltır.
  • Açık Kaynak: KEDA, açık kaynaklı bir projedir ve geniş bir topluluk tarafından desteklenmektedir. Bu, projenin sürekli olarak gelişmesini ve yenilikçi özellikler kazanmasını sağlar.

Kullanım Senaryoları

KEDA, çok çeşitli kullanım senaryolarında uygulanabilir. İşte bazı örnekler:

  • Mesaj Kuyrukları: Kafka, RabbitMQ, Azure Service Bus gibi mesaj kuyruklarındaki mesaj sayısına göre uygulama ölçeklendirme. Örneğin, bir e-ticaret sitesindeki sipariş işleme uygulaması, yeni siparişler geldikçe otomatik olarak ölçeklenebilir. NATS ile Yüksek Performanslı Mesajlaşma Altyapısı Kurmak yazımızda bu konuya değinmiştik.
  • Veritabanı Yükü: Veritabanı sorgu sayısına veya gecikme süresine göre uygulama ölçeklendirme. Örneğin, bir online oyunun veritabanı sunucuları, oyuncu sayısı arttıkça otomatik olarak ölçeklenebilir. TiDB: Dağıtık ve Ölçeklenebilir HTAP Veritabanı ile Veri Yönetiminde Yeni Bir Çağ yazımızda veritabanı çözümlerini inceleyebilirsiniz.
  • CPU ve Bellek Kullanımı: CPU ve bellek kullanımına ek olarak, özel metrikleri kullanarak uygulama ölçeklendirme. Örneğin, bir video işleme uygulaması, işlenecek video sayısı arttıkça otomatik olarak ölçeklenebilir.
  • Zamanlanmış Ölçekleme: Belirli zamanlarda veya olaylarda uygulama ölçeklendirme. Örneğin, bir e-ticaret sitesindeki kampanya uygulaması, kampanya başlangıcında otomatik olarak ölçeklenebilir.

Kurulum ve Başlangıç Rehberi

KEDA’yı Kubernetes ortamınıza kurmak ve yapılandırmak oldukça basittir. İşte temel adımlar:

1. KEDA Kurulumu

KEDA’yı kurmak için Helm veya YAML dosyalarını kullanabilirsiniz. Helm, Kubernetes paket yöneticisidir ve kurulumu kolaylaştırır. Aşağıdaki komutları kullanarak KEDA’yı kurabilirsiniz:


helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda --namespace keda --create-namespace

Bu komutlar, KEDA’yı `keda` namespace’ine kurar. Kurulum tamamlandıktan sonra, KEDA’nın çalıştığını doğrulamak için aşağıdaki komutu kullanabilirsiniz:


kubectl get pods -n keda

2. ScaledObject Tanımlama

KEDA’nın uygulamaları nasıl ölçekleyeceğini tanımlamak için `ScaledObject` adlı bir Kubernetes kaynağı oluşturmanız gerekir. `ScaledObject`, hangi olay kaynağının izleneceğini ve ölçekleme davranışının nasıl olacağını belirtir. İşte bir Kafka kuyruğunu izleyen bir `ScaledObject` örneği:


apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
 name: kafka-scaledobject
 namespace: default
spec:
 scaleTargetRef:
 name: kafka-consumer
 replicas:
 min: 0
 max: 10
 triggers:
 - type: kafka
 metadata:
 bootstrapServers: my-kafka-brokers:9092
 topic: my-topic
 consumerGroup: my-group
 lagThreshold: "50"

Bu `ScaledObject`, `kafka-consumer` adlı bir Deployment’ı izler ve Kafka kuyruğundaki gecikme (lag) 50’yi aştığında, Deployment’ın replica sayısını 0 ile 10 arasında otomatik olarak ayarlar.

3. Uygulama Dağıtımı

Son olarak, ölçeklenecek uygulamayı Kubernetes’e dağıtmanız gerekir. Bu, geleneksel Kubernetes Deployment’ları gibi yapılır. Ancak, KEDA’nın ölçekleme yapabilmesi için, Deployment’ın `replicas` alanının boş bırakılması veya 1 olarak ayarlanması önerilir.

BirCloud Perspektifi

BirCloud olarak, müşterilerimize Kubernetes ve bulut tabanlı çözümler konusunda uzmanlık sunuyoruz. KEDA, müşterilerimizin uygulamalarını daha verimli bir şekilde ölçeklendirmelerine ve maliyetleri optimize etmelerine yardımcı olan önemli bir araçtır. Müşterilerimize KEDA’nın kurulumu, yapılandırılması ve yönetimi konusunda destek sağlıyor, ayrıca KEDA’yı mevcut altyapılarıyla entegre etmelerine yardımcı oluyoruz.

BirCloud’un Kubernetes ve GitOps konusundaki uzmanlığı, müşterilerimizin KEDA ile birlikte sürekli entegrasyon ve sürekli dağıtım (CI/CD) süreçlerini optimize etmelerine olanak tanır. Ayrıca, BirSIEM çözümlerimizle, KEDA tarafından üretilen metrikleri ve olayları izleyerek, uygulamaların performansı ve güvenliği hakkında değerli bilgiler sağlıyoruz.

Sonuç

KEDA, Kubernetes üzerindeki uygulamaların olay güdümlü bir şekilde otomatik olarak ölçeklenmesini sağlayan güçlü bir araçtır. Geniş metrik desteği, kolay entegrasyonu ve otomatik ölçekleme yetenekleri sayesinde, kaynak kullanımını optimize eder ve maliyetleri düşürür. BirCloud olarak, müşterilerimize KEDA konusunda uzmanlık sunuyor ve uygulamalarının performansını ve verimliliğini artırmalarına yardımcı oluyoruz. KEDA’yı kullanarak, Kubernetes ortamınızda daha esnek, ölçeklenebilir ve verimli uygulamalar geliştirebilirsiniz.

❓ Sık Sorulan Sorular

KEDA nedir ve ne işe yarar?

KEDA, Kubernetes üzerinde çalışan uygulamaların, çeşitli olay kaynaklarına tepki olarak otomatik ölçeklenmesini sağlayan bir Kubernetes operatörüdür.

KEDA'nın HPA'dan farkı nedir?

Geleneksel HPA sadece CPU ve bellek kullanımına göre ölçekleme yaparken, KEDA çok daha geniş bir metrik yelpazesini destekler. Örneğin, Kafka kuyruğundaki mesaj sayısı, Azure Service Bus'taki kuyruk uzunluğu gibi.

KEDA hangi olay kaynaklarını destekler?

KEDA çok çeşitli olay kaynaklarını destekler, örneğin Kafka, RabbitMQ, Azure Service Bus, Prometheus ve daha fazlası.

KEDA nasıl kurulur?

KEDA, Helm veya YAML dosyaları kullanılarak Kubernetes ortamına kurulabilir. Helm, kurulumu kolaylaştıran bir paket yöneticisidir.

BirCloud KEDA konusunda nasıl yardımcı olabilir?

BirCloud, müşterilerine KEDA'nın kurulumu, yapılandırılması ve yönetimi konusunda destek sağlar. Ayrıca, KEDA'yı mevcut altyapılarıyla entegre etmelerine yardımcı olur.

Bir yanıt yazın

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