📖 6 dakika okuma süresi
📋 İçindekiler
Giriş
Modern bulut tabanlı uygulamaların en önemli gereksinimlerinden biri, değişen taleplere hızlı ve verimli bir şekilde yanıt verebilmektir. Kubernetes, container orkestrasyonu için endüstri standardı haline gelirken, otomatik ölçeklendirme yetenekleri kritik bir rol oynamaktadır. Ancak, geleneksel Kubernetes otomatik ölçeklendirme yöntemleri, olay tabanlı (event-driven) uygulamalar için her zaman yeterli olmayabilir. İşte bu noktada KEDA (Kubernetes Event-Driven Autoscaling) devreye giriyor. KEDA, Kubernetes’teki uygulamaların olay kaynaklarına (message queues, databases, vb.) dayalı olarak otomatik olarak ölçeklenmesini 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 Kubernetes ortamınızda KEDA’yı nasıl kurup yapılandırabileceğinizi derinlemesine inceleyeceğiz. Ayrıca, BirCloud’un KEDA konusundaki uzmanlığını ve size nasıl yardımcı olabileceğini de ele alacağız.
KEDA Nedir?
KEDA, Kubernetes’teki uygulamaların olay kaynaklarına göre otomatik olarak ölçeklenmesini sağlayan bir Kubernetes Operator’üdür. Geleneksel Kubernetes Horizontal Pod Autoscaler (HPA), CPU veya bellek kullanımı gibi metrikleri temel alırken, KEDA, olay kaynaklarındaki metrikleri (örneğin, bir kuyruktaki mesaj sayısı) temel alır. Bu, KEDA’nın olay tabanlı uygulamalar için daha hassas ve verimli bir ölçeklendirme çözümü sunmasını sağlar.
KEDA, aşağıdaki temel bileşenlerden oluşur:
- Operator: KEDA’nın temel bileşenidir ve Kubernetes API’sini dinler. ScaledObject ve ScaledJob kaynaklarını yönetir.
- ScaledObject: Uygulamanın nasıl ölçekleneceğini tanımlayan bir özel kaynaktır (Custom Resource Definition – CRD). Hangi olay kaynağının izleneceğini, hangi metriklerin kullanılacağını ve ölçeklendirme davranışını belirtir.
- ScaledJob: Kubernetes Job’larının olay güdümlü olarak çalıştırılmasını sağlar. Belirli bir olay tetiklendiğinde bir Job’un oluşturulmasını ve tamamlanmasını yönetir.
- External Scalers: Farklı olay kaynaklarından metrikleri almak için kullanılan bileşenlerdir. KEDA, Apache Kafka, RabbitMQ, Azure Queues, AWS SQS gibi birçok popüler olay kaynağı için hazır ölçekleyiciler sunar. Ayrıca, özel ölçekleyiciler de oluşturabilirsiniz.
KEDA’nın Avantajları
KEDA kullanmanın birçok avantajı vardır:
- Olay Tabanlı Ölçeklendirme: KEDA, uygulamalarınızı gerçek zamanlı olaylara göre ölçeklendirmenizi sağlar. Bu, taleplere daha hızlı ve verimli bir şekilde yanıt vermenizi sağlar.
- Otomatik Ölçeklendirme: KEDA, uygulamalarınızı otomatik olarak ölçeklendirir, böylece manuel müdahaleye gerek kalmaz. Bu, operasyonel yükünüzü azaltır ve kaynaklarınızı daha verimli kullanmanızı sağlar.
- Maliyet Optimizasyonu: KEDA, uygulamalarınızı yalnızca ihtiyaç duyulduğunda ölçeklendirerek maliyetlerinizi optimize etmenize yardımcı olur. Uygulama boşta kaldığında, KEDA pod sayısını sıfıra indirebilir.
- Esneklik: KEDA, birçok farklı olay kaynağını destekler ve özel ölçekleyiciler oluşturmanıza olanak tanır. Bu, KEDA’yı farklı uygulama senaryolarına uyarlamanızı kolaylaştırır.
- Kolay Entegrasyon: KEDA, Kubernetes ile sorunsuz bir şekilde entegre olur ve mevcut altyapınıza kolayca kurulabilir.
Kullanım Senaryoları
KEDA, çeşitli olay tabanlı uygulama senaryolarında kullanılabilir:
- Mesaj Kuyrukları: Bir mesaj kuyruğundaki mesaj sayısına göre işleme podlarını ölçeklendirin. Örneğin, Apache Kafka veya RabbitMQ kullanan uygulamalar için idealdir.
- Veritabanları: Bir veritabanındaki sorgu yüküne göre uygulama podlarını ölçeklendirin.
- Zamanlanmış İşlemler: Belirli bir zamanda çalıştırılması gereken işlemleri (cron jobs) olay tabanlı olarak tetikleyin.
- IoT Uygulamaları: IoT cihazlarından gelen verilere göre uygulama podlarını ölçeklendirin.
- Görüntü/Video İşleme: İşlenmeyi bekleyen görüntü veya video sayısına göre işleme podlarını ölçeklendirin.
Örneğin, Apache Kafka Streams ile gerçek zamanlı veri işleme yapıyorsanız, Kafka topic’lerindeki mesaj sayısına göre KEDA ile consumer uygulamalarınızı ölçeklendirebilirsiniz.
Kurulum ve Başlangıç Rehberi
KEDA’yı Kubernetes kümenize kurmak oldukça basittir. Aşağıdaki adımları izleyebilirsiniz:
- Helm ile KEDA’yı Kurun:
helm repo add kedacore https://kedacore.github.io/charts helm repo update helm install keda kedacore/keda --namespace keda --create-namespace - ScaledObject Tanımlayın:
apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: my-scaledobject namespace: default spec: scaleTargetRef: name: my-deployment triggers: - type: redis metadata: host: redis-master.default.svc.cluster.local:6379 listName: mylist listLength: "5" # Ölçeklendirme için kuyruk uzunluğu eşiği - Uygulamanızı Dağıtın: Kubernetes Deployment’ınızı normal şekilde dağıtın. KEDA, ScaledObject tanımına göre uygulamanızı otomatik olarak ölçeklendirecektir.
Bu örnekte, Redis kuyruğundaki eleman sayısına göre bir uygulamayı ölçeklendiren bir ScaledObject tanımı bulunmaktadır. `scaleTargetRef` bölümünde, ölçeklenecek Deployment’ın adını belirtiyoruz. `triggers` bölümünde ise, Redis kuyruğunu izleyecek ve kuyruk uzunluğu 5’i aştığında ölçeklendirme yapacak bir tetikleyici tanımlıyoruz.
BirCloud Perspektifi
BirCloud olarak, bulut bilişim çözümlerinde uzmanız ve müşterilerimize en iyi performansı ve verimliliği sunmayı hedefliyoruz. KEDA, Kubernetes ortamlarında olay tabanlı uygulamaları ölçeklendirmek için güçlü bir araçtır ve müşterilerimizin maliyetlerini düşürmelerine ve operasyonel yüklerini azaltmalarına yardımcı olabilir.
BirCloud olarak, KEDA konusunda aşağıdaki hizmetleri sunuyoruz:
- Danışmanlık: KEDA’nın sizin için uygun olup olmadığını değerlendirmenize ve en iyi kullanım senaryolarını belirlemenize yardımcı oluyoruz.
- Kurulum ve Yapılandırma: KEDA’yı Kubernetes kümenize kuruyor ve uygulamanızın ihtiyaçlarına göre yapılandırıyoruz.
- Eğitim: Ekibinize KEDA’yı nasıl kullanacağınızı ve yöneteceğinizi öğretiyoruz.
- Destek: KEDA ile ilgili herhangi bir sorun yaşadığınızda size destek sağlıyoruz.
Ayrıca, Kubernetes Operatörleri ile durumsal uygulama yönetimi konusunda da uzmanlığımız bulunmaktadır. KEDA’yı, özel operatörlerinizle birlikte kullanarak daha karmaşık ve özelleştirilmiş çözümler oluşturabilirsiniz.
Modern savunma stratejilerinin önemi gün geçtikçe artıyor. BirSIEM çözümüyle işletmenizi nasıl güçlendirebileceğinizi merak ediyorsanız, Modern Savunmanın Temeli: İşletmenizi BirSIEM ile Nasıl Güçlendirirsiniz? başlıklı yazımıza göz atabilirsiniz.
Sonuç
KEDA, Kubernetes’teki olay tabanlı uygulamaların otomatik ölçeklendirilmesi için güçlü ve esnek bir çözümdür. Olay kaynaklarına göre ölçeklendirme yaparak, maliyetleri optimize edebilir, performansı artırabilir ve operasyonel yükünüzü azaltabilirsiniz. BirCloud olarak, KEDA konusunda uzmanlığımızla size yardımcı olmaktan memnuniyet duyarız. KEDA’yı kullanarak bulut tabanlı uygulamalarınızı daha verimli ve ölçeklenebilir hale getirebilirsiniz.
❓ Sık Sorulan Sorular
KEDA nedir ve ne işe yarar?
KEDA (Kubernetes Event-Driven Autoscaling), Kubernetes'teki uygulamaların olay kaynaklarına göre otomatik olarak ölçeklenmesini sağlayan bir Kubernetes Operator'üdür. Mesaj kuyrukları, veritabanları gibi kaynaklardaki olaylara göre uygulama podlarını ölçeklendirebilir.
KEDA'nın avantajları nelerdir?
KEDA'nın avantajları arasında olay tabanlı ölçeklendirme, otomatik ölçeklendirme, maliyet optimizasyonu, esneklik ve kolay entegrasyon bulunur. Uygulamaları sadece ihtiyaç duyulduğunda ölçeklendirerek kaynak kullanımını optimize eder.
KEDA hangi olay kaynaklarını destekler?
KEDA, Apache Kafka, RabbitMQ, Azure Queues, AWS SQS gibi birçok popüler olay kaynağını destekler. Ayrıca, özel ölçekleyiciler de oluşturulabilir.
KEDA nasıl kurulur?
KEDA, Helm paket yöneticisi kullanılarak Kubernetes kümesine kolayca kurulabilir. Helm repo'su eklenerek ve KEDA chart'ı yüklenerek kurulum tamamlanır.
BirCloud KEDA konusunda nasıl yardımcı olabilir?
BirCloud, KEDA konusunda danışmanlık, kurulum, yapılandırma, eğitim ve destek hizmetleri sunar. Müşterilerin KEDA'yı en iyi şekilde kullanmalarına ve bulut tabanlı uygulamalarını daha verimli hale getirmelerine yardımcı olur.



