1 of 14

KEDA – �Kubernetes Event-Driven Autoscaler

Proposal for Sandbox Project in CNCF

2 of 14

Background and History

  • Microsoft had developed and was running the Azure Functions serverless offering
  • Partnered with Red Hat to deliver some of these capabilities to Kubernetes
  • KEDA enables serverless event-driven scale of containers
    • Just scaling based on CPU / Memory was too reactive
    • Needed a simple way to wire up metrics from event sources to drive scale (e.g. one million items in a queue will scale much faster than one hundred)
    • Enables scaling down to zero
    • 1.0 at KubeCon NA 2019
    • ~20 scalers to event sources like Kafka, Postgres, NATS, RabbitMQ…

3 of 14

DEMO: Event-Driven Scale

4 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

5 of 14

Kubernetes Cluster

Event Source

KEDA Operator

Metrics API

HPA

Scalers

6 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

Deployment

ScaledObject.yaml

Event Source

7 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

Deployment

ScaledObject.yaml

Event Source

8 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

Event Source

Deployment

ScaledObject.yaml

9 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

Event Source

Deployment

ScaledObject.yaml

How many events are being generated?

10 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

HPA

Scalers

Event Source

Deployment

ScaledObject.yaml

How many events are being generated?

11 of 14

Kubernetes Cluster

KEDA Operator

Metrics API

Deployment

HPA

Deployment

Scalers

Event Source

Deployment

ScaledObject.yaml

How many events are being generated?

12 of 14

Key Features

  • Scale deployments based on event metrics by simply defining a `ScaledObject` - all based on K8s CRDs
  • Scale to and from zero based on events
  • Built in scalers to over 20 sources across projects and cloud providers
  • Create jobs based on events (long running processes)
  • Define and share centralized authentication for different event sources
    • Pod Identity w/ no passwords
  • Focus on your app, not the scaling internals

13 of 14

KEDA Community

  • 1.7k stars on GitHub
  • 50 contributors, incl.
    • Microsoft
    • Red Hat
    • IBM
    • Codit
    • BUPA
    • Astronomer.io
  • Weekly community standups
  • https://keda.sh

Users

14 of 14

Why CNCF?

  • The Kubernetes Event-driven Autoscaling (KEDA) project does not want to reinvent the wheel but build on standards instead and is complimentary to Kubernetes.
  • From the beginning intent was open and community driven (open community standups, MIT License, non-Microsoft branded)
  • KEDA augments and enhances many CNCF projects (Virtual Kubelet, NATS, Promethues, Strimzi, Helm)
  • Vendor neutral home for key serverless capability