📖 7 dakika okuma süresi
📋 İçindekiler
Giriş
Günümüzde bulut tabanlı uygulamaların karmaşıklığı arttıkça, kaynak yönetimi ve ölçeklendirme stratejileri de önem kazanmaktadır. Kubernetes, konteyner orkestrasyonu alanında endüstri standardı haline gelmiştir, ancak uygulama ölçeklendirmesi hala zorlu bir konu olabilir. İşte bu noktada Kubernetes Etkinlik Odaklı Otomasyon (KEDA) devreye giriyor. KEDA, Kubernetes ortamlarında uygulama ölçeklendirmesini olay güdümlü bir yaklaşımla otomatikleştirerek kaynak kullanımını optimize etmeye ve performansı artırmaya olanak tanır.
Bu blog yazısında, KEDA’nın ne olduğunu, nasıl çalıştığını, avantajlarını, kullanım senaryolarını ve BirCloud’un bu alandaki uzmanlığını detaylı bir şekilde inceleyeceğiz. Ayrıca, KEDA’yı Kubernetes kümenize nasıl kurabileceğinizi ve temel bir uygulama ölçeklendirme örneğini adım adım açıklayacağız.
KEDA Nedir?
Kubernetes Event-driven Autoscaling (KEDA), Kubernetes üzerinde çalışan uygulamaların ölçeklendirilmesini otomatik hale getiren açık kaynaklı bir projedir. KEDA, uygulamalarınızın ihtiyaç duyduğu kaynakları gerçek zamanlı olarak analiz ederek, trafik yoğunluğuna veya olaylara göre otomatik olarak ölçeklenmesini sağlar. Bu, manuel müdahaleyi azaltır ve kaynak kullanımını optimize eder.
KEDA’nın temel amacı, Kubernetes’in yerleşik otomatik ölçeklendirme yeteneklerini (Horizontal Pod Autoscaler – HPA) genişletmektir. HPA genellikle CPU veya bellek kullanımına dayalı ölçeklendirme yaparken, KEDA daha çeşitli metrikleri (örneğin, mesaj kuyruğundaki mesaj sayısı, veritabanı sorgu sayısı, bulut servislerindeki olaylar) kullanarak ölçeklendirme kararları alabilir. Bu sayede, uygulamalarınızın performansı ve maliyeti daha iyi kontrol edilebilir.
KEDA’nın Avantajları
- Olay Güdümlü Ölçeklendirme: KEDA, uygulamalarınızı gerçek zamanlı olaylara göre ölçeklendirerek, ani trafik artışlarına veya yoğun iş yüklerine hızlı bir şekilde yanıt vermenizi sağlar.
- Kaynak Optimizasyonu: KEDA, uygulamalarınızın yalnızca ihtiyaç duyduğu kadar kaynak kullanmasını sağlayarak, bulut maliyetlerinizi azaltır ve kaynak verimliliğinizi artırır.
- Kolay Entegrasyon: KEDA, Kubernetes ile sorunsuz bir şekilde entegre olur ve mevcut altyapınıza kolayca adapte edilebilir.
- Geniş Ölçekleyici Desteği: KEDA, farklı olay kaynakları (Kafka, RabbitMQ, Azure Event Hubs, AWS SQS vb.) için geniş bir ölçekleyici yelpazesi sunar.
- Otomatik Ölçeklendirme: KEDA, manuel müdahaleyi azaltarak, uygulama ölçeklendirme süreçlerinizi otomatikleştirir ve operasyonel yükünüzü hafifletir.
- Sunucusuz (Serverless) Mimari: KEDA, sunucusuz iş yüklerini Kubernetes üzerinde çalıştırmanıza olanak tanır. Örneğin, bir mesaj kuyruğuna yeni bir mesaj geldiğinde bir fonksiyonu otomatik olarak ölçeklendirebilirsiniz.
Kullanım Senaryoları
KEDA, çeşitli kullanım senaryolarında uygulama ölçeklendirmesini optimize etmek için kullanılabilir:
- Mesaj Kuyruğu İşleme: Bir mesaj kuyruğundaki (örneğin, Kafka, RabbitMQ) mesaj sayısına göre işlemci (consumer) podlarını otomatik olarak ölçeklendirebilirsiniz. Bu, mesaj işleme hızını artırır ve kuyrukta birikmeyi önler. İlgili olarak NATS ile Yüksek Performanslı Mesajlaşma Altyapısı Kurmak yazımıza göz atabilirsiniz.
- Veritabanı Sorgu İşleme: Veritabanına gelen sorgu sayısına veya veritabanı yüküne göre uygulama podlarını ölçeklendirebilirsiniz. Bu, veritabanı performansını artırır ve yanıt sürelerini kısaltır.
- Olay Tabanlı Uygulamalar: Bulut servislerinden (örneğin, Azure Event Hubs, AWS SQS) gelen olaylara göre uygulamalarınızı ölçeklendirebilirsiniz. Bu, olay tabanlı mimarileri Kubernetes üzerinde daha verimli bir şekilde çalıştırmanızı sağlar.
- Zamanlanmış Görevler: Belirli zamanlarda veya periyotlarda çalışan görevlerinizi (cron jobs) KEDA ile ölçeklendirebilirsiniz. Bu, görevlerin zamanında tamamlanmasını sağlar ve kaynak kullanımını optimize eder.
KEDA Kurulumu ve Başlangıç
KEDA’yı Kubernetes kümenize kurmak oldukça basittir. Aşağıdaki adımları izleyerek KEDA’yı kolayca kurabilirsiniz:
1. KEDA’yı Kurulumu
KEDA’yı kurmak için Helm kullanabilirsiniz. Öncelikle Helm’in kurulu olduğundan emin olun. Ardından aşağıdaki komutları çalıştırarak KEDA’yı kurun:
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’inde kuracaktır. Kurulum tamamlandıktan sonra, KEDA podlarının çalıştığını doğrulayın:
kubectl get pods -n keda
2. Ölçeklenebilir Bir Uygulama Oluşturma
Şimdi, KEDA ile ölçeklenebilir bir uygulama oluşturalım. Bu örnekte, bir RabbitMQ kuyruğundaki mesaj sayısına göre ölçeklenecek basit bir işlemci (consumer) uygulaması kullanacağız.
Öncelikle, bir RabbitMQ kuyruğu oluşturalım ve bazı mesajlar gönderelim.
3. ScaledObject Tanımlama
KEDA’nın uygulamayı nasıl ölçeklendireceğini tanımlamak için bir `ScaledObject` oluşturmanız gerekir. Aşağıdaki YAML dosyasını kullanarak bir `ScaledObject` tanımlayın:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: rabbitmq-scaledobject
namespace: default
spec:
scaleTargetRef:
name: rabbitmq-consumer
pollingInterval: 5
cooldownPeriod: 30
minReplicaCount: 0
maxReplicaCount: 10
triggers:
- type: rabbitmq
metadata:
queueName: myqueue
queueLength: '5'
host: rabbitmq-service
port: '5672'
username: user
password: password
Bu `ScaledObject`, `rabbitmq-consumer` adlı Deployment’ı ölçeklendirecek ve RabbitMQ kuyruğundaki mesaj sayısı 5’i geçtiğinde pod sayısını artıracaktır. `minReplicaCount` 0 olarak ayarlandığı için, kuyruk boş olduğunda pod sayısı sıfıra düşecektir.
4. Uygulamayı Dağıtma
`ScaledObject`’i Kubernetes’e uygulayın:
kubectl apply -f rabbitmq-scaledobject.yaml
KEDA, artık RabbitMQ kuyruğundaki mesaj sayısını izleyecek ve `rabbitmq-consumer` Deployment’ını otomatik olarak ölçeklendirecektir.
BirCloud Perspektifi
BirCloud olarak, müşterilerimize bulut tabanlı çözümler sunarken her zaman en iyi uygulamaları ve en son teknolojileri kullanmaya özen gösteriyoruz. KEDA, Kubernetes ortamlarında uygulama ölçeklendirmesini optimize etmek ve kaynak kullanımını verimli hale getirmek için mükemmel bir araçtır. Müşterilerimizin KEDA’yı kullanarak bulut maliyetlerini azaltmalarına ve uygulama performansını artırmalarına yardımcı oluyoruz.
BirCloud’un uzman ekibi, KEDA’nın kurulumu, yapılandırılması ve yönetimi konusunda kapsamlı deneyime sahiptir. Müşterilerimize özel ihtiyaçlarına göre uyarlanmış KEDA çözümleri sunuyoruz. Ayrıca, KEDA ile entegre olabilen diğer bulut araçları ve teknolojileri (örneğin, Prometheus, Grafana, Argo CD) konusunda da uzmanlığımız bulunmaktadır. Bu sayede Argo CD ile Gelişmiş GitOps Stratejileri: Uygulama Dağıtımında Verimlilik ve Güvenlik yazımızda bahsedilen uygulama dağıtım süreçlerinizde de KEDA’nın avantajlarından faydalanabilirsiniz.
Sonuç
Kubernetes Etkinlik Odaklı Otomasyon (KEDA), Kubernetes ortamlarında uygulama ölçeklendirmesini otomatikleştirerek kaynak kullanımını optimize etmeye ve performansı artırmaya olanak tanır. KEDA, olay güdümlü yaklaşımı sayesinde, uygulamalarınızın gerçek zamanlı olaylara göre ölçeklenmesini sağlar ve manuel müdahaleyi azaltır. BirCloud olarak, müşterilerimize KEDA’nın kurulumu, yapılandırılması ve yönetimi konusunda uzmanlık sunuyoruz ve bulut tabanlı çözümlerini optimize etmelerine yardımcı oluyoruz.
Eğer siz de Kubernetes ortamınızda uygulama ölçeklendirmesini otomatikleştirmek ve kaynak kullanımınızı optimize etmek istiyorsanız, KEDA’yı denemenizi şiddetle tavsiye ederiz. BirCloud’un uzman ekibi, KEDA ile ilgili tüm ihtiyaçlarınızda size yardımcı olmaktan mutluluk duyacaktır.
Unutmayın, modern savunmanın temeli, optimize edilmiş ve ölçeklenebilir bir altyapıdır. Modern Savunmanın Temeli: İşletmenizi BirSIEM ile Nasıl Güçlendirirsiniz? başlıklı yazımızda da bahsettiğimiz gibi, güvenlik ve performans el ele gitmelidir.
❓ Sık Sorulan Sorular
KEDA nedir ve ne işe yarar?
KEDA, Kubernetes üzerinde çalışan uygulamaların olay güdümlü bir şekilde otomatik olarak ölçeklenmesini sağlayan açık kaynaklı bir projedir. Uygulamalarınızın trafik yoğunluğuna veya olaylara göre otomatik olarak ölçeklenmesini sağlar.
KEDA'nın avantajları nelerdir?
KEDA'nın avantajları arasında olay güdümlü ölçeklendirme, kaynak optimizasyonu, kolay entegrasyon, geniş ölçekleyici desteği ve otomatik ölçeklendirme bulunur.
KEDA hangi olay kaynaklarını destekler?
KEDA, Kafka, RabbitMQ, Azure Event Hubs, AWS SQS gibi çeşitli olay kaynaklarını destekler. Bu sayede farklı kaynaklardaki olaylara göre uygulamalarınızı ölçeklendirebilirsiniz.
KEDA nasıl kurulur?
KEDA, Helm kullanılarak Kubernetes kümesine kolayca kurulabilir. Helm repo'sunu ekleyip gerekli komutları çalıştırarak KEDA'yı kurabilirsiniz.
BirCloud KEDA konusunda nasıl yardımcı olabilir?
BirCloud, KEDA'nın kurulumu, yapılandırılması ve yönetimi konusunda kapsamlı deneyime sahiptir. Müşterilerimize özel ihtiyaçlarına göre uyarlanmış KEDA çözümleri sunuyoruz ve bulut maliyetlerini azaltmalarına yardımcı oluyoruz.



