📖 6 dakika okuma süresi
📋 İçindekiler
Giriş
Kubernetes, konteyner orkestrasyonu alanında endüstri standardı haline gelmiştir. Ancak, Kubernetes’in yerel otomatik ölçeklendirme yetenekleri, yalnızca CPU ve bellek kullanımına dayanır. Bu durum, olay güdümlü (event-driven) uygulamalar için yetersiz kalabilir. İşte bu noktada KEDA (Kubernetes Event-Driven Autoscaling) devreye giriyor. KEDA, Kubernetes uygulamalarınızı çeşitli olay kaynaklarına (event sources) göre otomatik olarak ölçeklendirmenizi sağlayan açık kaynaklı bir çözümdür. Bu blog yazısında, KEDA’nın ne olduğunu, avantajlarını, kullanım senaryolarını ve nasıl kurulacağını detaylı bir şekilde inceleyeceğiz.
KEDA Nedir?
KEDA, Kubernetes’te çalışan uygulamaların ölçeklendirilmesini olay kaynaklarına bağlayan bir Kubernetes operatörüdür. Geleneksel Kubernetes Horizontal Pod Autoscaler (HPA) yalnızca CPU ve bellek metriklerine göre ölçeklendirme yaparken, KEDA, Kafka kuyruklarındaki mesaj sayısı, Azure Service Bus kuyruk uzunluğu, Prometheus metrikleri veya herhangi bir özel metrik gibi çeşitli olay kaynaklarına göre ölçeklendirme yapabilir. KEDA, uygulamalarınızın gerçek zamanlı taleplerine daha duyarlı bir şekilde yanıt vermesini sağlar, böylece kaynak kullanımını optimize eder ve maliyetleri düşürür.
KEDA’nın Avantajları
- Olay Güdümlü Ölçeklendirme: Uygulamalarınızı gerçek zamanlı olaylara göre ölçeklendirin. Bu, ani trafik artışlarına daha hızlı ve etkili bir şekilde yanıt vermenizi sağlar.
- Kaynak Optimizasyonu: KEDA, iş yükü olmadığında uygulamalarınızı sıfıra kadar ölçeklendirebilir. Bu, kaynak kullanımını önemli ölçüde azaltır ve maliyetleri düşürür.
- Kolay Entegrasyon: KEDA, mevcut Kubernetes altyapınızla kolayca entegre olur. Herhangi bir kod değişikliği yapmanıza gerek kalmadan uygulamalarınızı ölçeklendirebilirsiniz.
- Çoklu Olay Kaynağı Desteği: KEDA, Kafka, RabbitMQ, Azure Service Bus, AWS SQS, Prometheus ve daha birçok olay kaynağını destekler. Bu, çeşitli uygulamalar için ölçeklendirme çözümleri sunar.
- Açık Kaynak ve Topluluk Desteği: KEDA, açık kaynaklı bir projedir ve geniş bir topluluk tarafından desteklenmektedir. Bu, sürekli gelişen bir çözüm ve bol miktarda kaynak anlamına gelir.
- YAML ile Kolay Konfigürasyon: KEDA ölçeklendirme kuralları, YAML dosyaları aracılığıyla tanımlanır. Bu, konfigürasyonu kolaylaştırır ve sürüm kontrol sistemleriyle entegrasyonu mümkün kılar.
Kullanım Senaryoları
KEDA, çeşitli kullanım senaryolarında etkili bir şekilde uygulanabilir:
- Mesaj Kuyruğu İşleme: Kafka, RabbitMQ veya Azure Service Bus gibi mesaj kuyruklarından gelen mesajları işleyen uygulamalar için KEDA, kuyruk uzunluğuna göre ölçeklendirme yapabilir. Örneğin, bir e-ticaret sitesinde siparişleri işleyen bir uygulama, sipariş sayısındaki artışa göre otomatik olarak ölçeklenebilir.
- Veri İşleme: Veri akışı uygulamaları, KEDA ile gerçek zamanlı olarak ölçeklendirilebilir. Apache Kafka Streams ile gerçek zamanlı veri işleme ve analizi konusunda BirCloud uzmanlığı ile entegre çözümler sunulabilir.
- Arka Plan İşlemleri: Belirli aralıklarla veya olaylara bağlı olarak çalışan arka plan işlemleri, KEDA ile otomatik olarak ölçeklendirilebilir. Örneğin, bir görüntü işleme uygulaması, yeni yüklenen görüntü sayısına göre ölçeklenebilir.
- Web Uygulamaları: Yoğun trafik dönemlerinde web uygulamaları, KEDA ile otomatik olarak ölçeklendirilebilir. Prometheus metriklerini kullanarak, uygulama trafiğine göre ölçeklendirme yapabilirsiniz.
- IoT Uygulamaları: IoT cihazlarından gelen verileri işleyen uygulamalar, KEDA ile ölçeklendirilebilir. Cihaz sayısındaki artışa veya veri hacmindeki artışa göre ölçeklendirme yapabilirsiniz.
Kurulum ve Başlangıç Rehberi
KEDA’yı Kubernetes kümenize kurmak ve kullanmaya başlamak oldukça basittir. İşte adım adım bir rehber:
Adım 1: KEDA’yı Kurulumu
KEDA’yı kurmanın en kolay yolu Helm kullanmaktır. Helm, Kubernetes için bir paket yöneticisidir ve uygulamaların kurulumunu ve yönetimini kolaylaştırır.
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 operatörünün çalıştığını doğrulamak için aşağıdaki komutu kullanabilirsiniz:
kubectl get deployments -n keda
Adım 2: ScaledObject Tanımlama
KEDA’nın ölçeklendirme yapabilmesi için bir `ScaledObject` tanımlamanız gerekir. `ScaledObject`, hangi olay kaynağına göre ölçeklendirme yapılacağını ve ölçeklendirme kurallarını belirtir.
Örneğin, Kafka kuyruğundaki mesaj sayısına göre ölçeklendirme yapmak için aşağıdaki gibi bir `ScaledObject` tanımlayabilirsiniz:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: kafka-scaledobject
namespace: default
spec:
scaleTargetRef:
name: my-kafka-consumer
triggers:
- type: kafka
metadata:
bootstrapServers: my-kafka-brokers:9092
topic: my-topic
consumerGroup: my-group
lagThreshold: '5'
Bu `ScaledObject`, `my-kafka-consumer` adlı Deployment’ı ölçeklendirecektir. Kafka kuyruğundaki mesaj sayısı 5’i geçtiğinde, KEDA yeni pod’lar oluşturacaktır.
Adım 3: Uygulamayı Dağıtma
`ScaledObject` tanımlandıktan sonra, uygulamanızı Kubernetes’e dağıtabilirsiniz. KEDA, uygulamanızın ölçeklendirilmesini otomatik olarak yönetecektir.
BirCloud Perspektifi
BirCloud olarak, müşterilerimize bulut tabanlı çözümler sunarken, KEDA’nın olay güdümlü otomatik ölçeklendirme yeteneklerinden faydalanıyoruz. KEDA, uygulamalarımızın kaynak kullanımını optimize etmemize, maliyetleri düşürmemize ve müşterilerimize daha iyi bir deneyim sunmamıza yardımcı oluyor. KEDA ile Kubernetes Etkinlik Tabanlı Uygulama Ölçeklendirme konusundaki uzmanlığımızla, müşterilerimize özel çözümler sunuyoruz.
Örneğin, bir e-ticaret müşterimiz için, siparişleri işleyen bir uygulamayı KEDA ile ölçeklendirerek, yoğun kampanya dönemlerinde bile uygulamanın sorunsuz bir şekilde çalışmasını sağladık. Ayrıca, Prometheus ile proaktif izleme ve anomali tespiti yaparak, KEDA’nın ölçeklendirme kararlarını daha iyi optimize etmemize yardımcı olduk.
BirCloud olarak, bulut teknolojisi alanındaki deneyimimizle, müşterilerimize en iyi çözümleri sunmaya devam edeceğiz. KEDA, bulut altyapımızı daha verimli ve ölçeklenebilir hale getirmemize yardımcı olan önemli bir araçtır.
Sonuç
KEDA, Kubernetes’te olay güdümlü otomatik ölçeklendirme için güçlü ve esnek bir çözümdür. Uygulamalarınızın gerçek zamanlı taleplerine daha duyarlı bir şekilde yanıt vermesini sağlar, kaynak kullanımını optimize eder ve maliyetleri düşürür. KEDA’nın kolay kurulumu ve konfigürasyonu, Kubernetes altyapınızı daha verimli hale getirmenize yardımcı olur. BirCloud olarak, KEDA’nın sunduğu avantajlardan faydalanarak, müşterilerimize en iyi bulut çözümlerini sunmaya devam edeceğiz.
❓ Sık Sorulan Sorular
KEDA nedir?
KEDA (Kubernetes Event-Driven Autoscaling), Kubernetes'te çalışan uygulamaların ölçeklendirilmesini olay kaynaklarına bağlayan bir Kubernetes operatörüdür.
KEDA'nın avantajları nelerdir?
Olay güdümlü ölçeklendirme, kaynak optimizasyonu, kolay entegrasyon, çoklu olay kaynağı desteği ve açık kaynak olması KEDA'nın başlıca avantajlarıdır.
KEDA hangi olay kaynaklarını destekler?
Kafka, RabbitMQ, Azure Service Bus, AWS SQS, Prometheus ve daha birçok olay kaynağını destekler.
KEDA nasıl kurulur?
KEDA, Helm kullanılarak Kubernetes kümesine kolayca kurulabilir. Kurulum adımları blog yazısında detaylı olarak açıklanmıştır.
ScaledObject nedir?
ScaledObject, KEDA'nın ölçeklendirme yapabilmesi için tanımlanan, hangi olay kaynağına göre ölçeklendirme yapılacağını ve ölçeklendirme kurallarını belirten bir Kubernetes kaynağıdır.



