Kubernetes Event-driven Autoscaling

Application autoscaling made simple


What is KEDA?

KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, you can drive the scaling of any container in Kubernetes based on the number of events needing to be processed.

KEDA is a single-purpose and lightweight component that can be added into any Kubernetes cluster. KEDA works alongside standard Kubernetes components like the Horizontal Pod Autoscaler and can extend functionality without overwriting or duplication. With KEDA you can explicitly map the apps you want to use event-driven scale, with other apps continuing to function. This makes KEDA a flexible and safe option to run alongside any number of any other Kubernetes applications or frameworks.

Features


Event-driven

Intelligently scale your event-driven application

Autoscaling Made Simple

Bring rich scaling to every container in your Kubernetes cluster

Built-in Scalers

Out-of-the-box scalers for various vendors, databases, messaging systems, telemetry systems, and more

Multiple Workload Types

Support for variety of workload types such as deployments and jobs

Vendor-Agnostic

Support for triggers across multiple vendors

Azure Functions Support

Run and scale your Azure Functions on Kubernetes in production workloads

An overview of KEDA and event-driven containers on Kubernetes

From KubeCon North America 2019

Scalers

Scalers represent event sources that KEDA can scale based on


ActiveMQ Artemis

Scale applications based on ActiveMQ Artemis queues
Apache Kafka

Scale applications based on an Apache Kafka topic or other services that support Kafka protocol.
AWS CloudWatch

Scale applications based on AWS CloudWatch.
AWS Kinesis Stream

Scale applications based on AWS Kinesis Stream.
AWS SQS Queue

Scale applications based on AWS SQS Queue.
Azure Blob Storage

Scale applications based on the count of blobs in a given Azure Blob Storage container.
Azure Event Hubs

Scale applications based on Azure Event Hubs.
Azure Monitor

Scale applications based on Azure Monitor metrics.
Azure Service Bus

Scale applications based on Azure Service Bus Queues or Topics.
Azure Storage Queue

Scale applications based on Azure Storage Queues.
Cron

Scale applications based on a cron schedule.
External

Scale applications based on an external scaler.
Google Cloud Platform‎ Pub/Sub

Scale applications based on Google Cloud Platform‎ Pub/Sub.
Huawei Cloudeye

Scale applications based on a Huawei Cloudeye.
Liiklus Topic

Scale applications based on Liiklus Topic.
MySQL

Scale applications based on MySQL query result.
NATS Streaming

Scale applications based on NATS Streaming.
PostgreSQL

Scale applications based on a PostgreSQL query.
Prometheus

Scale applications based on Prometheus.
RabbitMQ Queue

Scale applications based on RabbitMQ Queue.
Redis Lists

Scale applications based on Redis Lists.
Redis Streams

Scale applications based on Redis Streams.

Highlighted Samples

RabbitMQ and Go

RabbitMQ Consumer written in Go that is scaled with KEDA.

Azure Functions and Queue

Azure Function that triggers on Azure Storage Queues.

Python Jobs and Queues

Run a Python job for each queue message.

Users

A variety of users are autoscaling applications with Kubernetes Event-driven Autoscaling (KEDA)



Community

Kubernetes Event-driven Autoscaling (KEDA) is supported by and built by our community, including the following companies


Get Involved

If you’re interested in contributing to or participating in the direction of KEDA, you can join our community meetings.

Just want to learn or chat about KEDA? Feel free to join the conversation in the #KEDA channel on the Kubernetes Slack!

KEDA is a Cloud Native Computing Foundation sandbox project