📖 7 dakika okuma süresi
📋 İçindekiler
Giriş
Kubernetes, modern uygulama geliştirme ve dağıtımının vazgeçilmez bir parçası haline geldi. Ancak, Kubernetes’in sunduğu kaynak yönetimi özelliklerini en iyi şekilde kullanmak, özellikle de olay güdümlü (event-driven) uygulamalar için, bazen karmaşık olabilir. İşte bu noktada, Kubernetes Event-driven Autoscaling (KEDA) devreye giriyor. KEDA, Kubernetes ortamında olay güdümlü uygulamaların otomatik ölçeklendirilmesini basitleştiren açık kaynaklı bir projedir. Bu yazıda, KEDA’nın ne olduğunu, avantajlarını, kullanım senaryolarını ve 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, olay kaynaklarına (event sources) bağlı olarak otomatik olarak ölçeklenmesini sağlayan bir Kubernetes Operator’üdür. Geleneksel Horizontal Pod Autoscaler (HPA) yalnızca CPU ve bellek gibi metriklerle çalışırken, KEDA; Kafka kuyrukları, RabbitMQ mesajları, Azure Event Hubs gibi çeşitli olay kaynaklarına tepki verebilir. Bu sayede, uygulamanızın gerçek zamanlı olarak değişen taleplere uyum sağlamasını ve kaynakları verimli bir şekilde kullanmasını sağlar.
KEDA’nın temel amacı, Kubernetes’teki uygulama ölçeklendirme sürecini basitleştirmek ve otomatikleştirmektir. KEDA, Kubernetes metrik sunucusu (metrics server) ve HPA ile entegre olarak çalışır. Bir olay kaynağında bir artış tespit ettiğinde, KEDA otomatik olarak HPA’yı tetikler ve uygulama podlarının sayısını artırır. Olay kaynağındaki yük azaldığında ise, KEDA pod sayısını azaltarak kaynak kullanımını optimize eder.
KEDA’nın Avantajları
- Olay Güdümlü Ölçeklendirme: KEDA, uygulamalarınızı gerçek zamanlı olaylara göre ölçeklendirerek, taleplere hızlı ve etkili bir şekilde yanıt vermenizi sağlar. Geleneksel HPA’ya kıyasla daha hassas ve dinamik bir ölçeklendirme sunar.
- Çeşitli Olay Kaynakları Desteği: KEDA, çok çeşitli olay kaynaklarını destekler. Kafka, RabbitMQ, Azure Event Hubs, AWS SQS gibi popüler mesaj kuyrukları ve olay akış platformlarıyla entegre olabilir. Bu sayede, farklı teknolojiler kullanan uygulamalarınız için de ölçeklendirme çözümleri sunar.
- Basit Kurulum ve Yapılandırma: KEDA, Kubernetes ortamına kolayca kurulabilir ve yapılandırılabilir. YAML dosyaları veya Helm grafikleri aracılığıyla, ölçeklendirme kurallarınızı tanımlayabilirsiniz. KEDA, Kubernetes’in yerel araçlarını kullandığı için, mevcut altyapınıza kolayca entegre olur.
- Otomatik Kaynak Yönetimi: KEDA, uygulama podlarınızın sayısını otomatik olarak ayarlayarak, kaynak kullanımını optimize eder. Yüksek talep dönemlerinde performansı artırırken, düşük talep dönemlerinde kaynakları serbest bırakarak maliyetleri düşürür.
- Sunucusuz (Serverless) Entegrasyonu: KEDA, sunucusuz fonksiyonlarla (serverless functions) mükemmel bir şekilde entegre olur. Örneğin, Azure Functions veya Knative gibi sunucusuz platformlarda çalışan fonksiyonlarınızı, KEDA ile kolayca ölçeklendirebilirsiniz. WebAssembly ile sunucusuz (Serverless) bulut uygulamaları geliştirme hakkında daha fazla bilgi için WebAssembly ile Sunucusuz (Serverless) Bulut Uygulamaları Geliştirme Rehberi yazımızı inceleyebilirsiniz.
Kullanım Senaryoları
- Mesaj Kuyruğu İşleme: KEDA, mesaj kuyruklarındaki mesaj sayısına göre uygulama podlarını ölçeklendirebilir. Örneğin, bir e-ticaret uygulamasında, siparişleri işleyen bir arka plan servisi, KEDA ile kuyruktaki sipariş sayısına göre otomatik olarak ölçeklenebilir.
- Olay Akışı İşleme: KEDA, olay akış platformlarındaki olay sayısına göre uygulama podlarını ölçeklendirebilir. Örneğin, bir IoT uygulamasında, sensör verilerini işleyen bir servis, KEDA ile gelen veri akışına göre otomatik olarak ölçeklenebilir.
- Zamanlanmış Görevler: KEDA, belirli zamanlarda veya aralıklarla çalışan görevlerin ölçeklendirilmesini sağlayabilir. Örneğin, bir raporlama uygulamasında, her gece çalışan bir raporlama görevi, KEDA ile otomatik olarak ölçeklenebilir.
- Veritabanı İşlemleri: KEDA, veritabanı işlemlerinin sayısına göre uygulama podlarını ölçeklendirebilir. Örneğin, bir sosyal medya uygulamasında, yeni gönderileri işleyen bir servis, KEDA ile veritabanına yapılan yazma işlemlerinin sayısına göre otomatik olarak ölçeklenebilir.
Kurulum ve Başlangıç Rehberi
KEDA’yı Kubernetes ortamınıza kurmak ve kullanmaya başlamak oldukça kolaydır. Aşağıdaki adımları izleyerek KEDA’yı kurabilir ve ilk ölçeklendirme kuralınızı tanımlayabilirsiniz.
Adım 1: KEDA’yı Kurun
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. Eğer Helm kurulu değilse, öncelikle Helm’i kurmanız gerekmektedir.
Helm kuruluysa, 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 kuracak ve gerekli Kubernetes kaynaklarını oluşturacaktır.
Adım 2: Ölçeklendirme Kuralı Tanımlayın
KEDA’yı kurduktan sonra, ölçeklendirme kuralınızı tanımlamanız gerekmektedir. Ölçeklendirme kuralı, hangi olay kaynağına göre uygulamanızın ölçekleneceğini ve hangi metriklerin kullanılacağını belirtir. Ölçeklendirme kuralı, bir `ScaledObject` kaynağı olarak tanımlanır.
Aşağıdaki örnekte, bir Kafka kuyruğundaki mesaj sayısına göre bir uygulamanın ölçeklendirilmesi için bir `ScaledObject` tanımı verilmiştir:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: kafka-scaledobject
namespace: default
spec:
scaleTargetRef:
name: my-deployment
triggers:
- type: kafka
metadata:
bootstrapServers: my-kafka-brokers:9092
topic: my-topic
consumerGroup: my-group
lagThreshold: "10" # Her pod için en fazla 10 mesaj işlenmemiş olmalı
Bu `ScaledObject` tanımı, `my-deployment` adlı bir Deployment’ı ölçeklendirecek ve Kafka kuyruğundaki `my-topic` konusundaki mesaj sayısına göre ölçeklendirme yapacaktır. `lagThreshold` değeri, her pod için en fazla 10 mesaj işlenmemiş olması gerektiğini belirtir. Eğer kuyruktaki mesaj sayısı bu eşiği aşarsa, KEDA otomatik olarak pod sayısını artıracaktır.
Adım 3: Uygulamanızı Dağıtın
Ölçeklendirme kuralınızı tanımladıktan sonra, uygulamanızı Kubernetes’e dağıtabilirsiniz. Uygulamanız, KEDA tarafından otomatik olarak ölçeklendirilecektir.
BirCloud Perspektifi
BirCloud olarak, Kubernetes ve olay güdümlü mimariler konusundaki uzmanlığımızla, müşterilerimize KEDA’nın avantajlarından en iyi şekilde yararlanmaları için destek oluyoruz. KEDA’nın kurulumu, yapılandırılması ve yönetimi konusunda danışmanlık hizmetleri sunuyoruz. Ayrıca, müşterilerimizin özel ihtiyaçlarına göre özelleştirilmiş KEDA çözümleri geliştiriyoruz.
BirCloud’un bulut çözümleri, KEDA ile entegre olarak çalışabilir ve müşterilerimize daha kapsamlı bir çözüm sunabilir. Örneğin, BirCloud’un SIEM çözümü Modern Savunmanın Temeli: İşletmenizi BirSIEM ile Nasıl Güçlendirirsiniz?, KEDA tarafından ölçeklendirilen uygulamaların güvenliğini ve performansını izlemek için kullanılabilir. Prometheus ile Proaktif İzleme ve Anomali Tespiti Prometheus ile Proaktif İzleme ve Anomali Tespiti: BirCloud ile Bulut Ortamınızı Güçlendirin yazımızda bahsedildiği gibi, KEDA ile ölçeklenen uygulamaların metriklerini toplamak ve analiz etmek için kullanılabilir. Argo CD ile GitOps Tabanlı Sürekli Dağıtım Stratejileri Argo CD ile GitOps Tabanlı Sürekli Dağıtım Stratejileri: Derinlemesine İnceleme ve En İyi Uygulamalar ile KEDA konfigürasyonlarınızı yönetebilir ve uygulamanızın sürekli dağıtımını sağlayabilirsiniz.
Sonuç
KEDA, Kubernetes’te olay güdümlü uygulamaların otomatik ölçeklendirilmesini basitleştiren ve optimize eden güçlü bir araçtır. Çeşitli olay kaynakları desteği, basit kurulumu ve otomatik kaynak yönetimi sayesinde, KEDA; uygulama performansını artırmak ve maliyetleri düşürmek isteyen her Kubernetes kullanıcısı için ideal bir çözümdür. BirCloud olarak, KEDA konusundaki uzmanlığımızla, müşterilerimize bu teknolojinin avantajlarından en iyi şekilde yararlanmaları için destek olmaktan mutluluk duyarız.
❓ Sık Sorulan Sorular
KEDA nedir?
KEDA, Kubernetes'te olay güdümlü uygulamaların otomatik olarak ölçeklenmesini sağlayan bir Kubernetes Operator'üdür.
KEDA'nın avantajları nelerdir?
Olay güdümlü ölçeklendirme, çeşitli olay kaynakları desteği, basit kurulum ve yapılandırma, otomatik kaynak yönetimi ve sunucusuz entegrasyonu.
KEDA hangi olay kaynaklarını destekler?
Kafka, RabbitMQ, Azure Event Hubs, AWS SQS gibi popüler mesaj kuyrukları ve olay akış platformlarını destekler.
KEDA nasıl kurulur?
Helm kullanılarak kolayca kurulabilir. Helm repo eklenir, güncellenir ve ardından KEDA chart'ı kurulur.
ScaledObject nedir?
ScaledObject, KEDA'nın ölçeklendirme kurallarını tanımlamak için kullanılan bir Kubernetes kaynağıdır. Hangi olay kaynağına göre ölçeklendirme yapılacağını ve hangi metriklerin kullanılacağını belirtir.




5 Comments on “Kubernetes’te Olay Güdümlü Otomatik Ölçeklendirme: KEDA ile Performansı Optimize Edin”
Comments are closed.