2. | Azure Architect, R&D Manager at Codit
| Microsoft Azure MVP, GitHub Star & CNCF Ambassador
| Member of Azure UG (AZUG)
| Maintainer of KEDA, Promitor, Kubernetes Event Grid Bridge, …
| Lives in Belgium near Bruges
| blog.tomkerkhove.be
2
@TomKerkhov
e
tomkerkhove
5. Application autoscaling made simple with
Kubernetes Event-driven Autoscaling (KEDA)
5
• Automatically scale Deployments, Jobs, /scale subresources
• Provides 30+ built-in scalers, but you can build your own
• Support for external scaler, external push or Metrics API
• Production-grade authentication
• Save resources with scale to 0
• Started as a partnership between Microsoft & Red Hat
• CNCF Sandbox project
• Focus on scaling your app, not the scaling internals
10. How does it work?
January 2021 Application Autoscaling Made Easy With Kubernetes Event-Driven Autoscaling (KEDA) 10
• KEDA is built on top of Kubernetes
• Manages workloads to provide scale to 0
• Registers itself as a metric adapter
• Provides metrics for HPA to scale on
• Out-of-the-box & add-on scalers
• Easy to install
• With Helm
• https://hub.helm.sh/charts/kedacore/keda
• With Operator Framework
• https://operatorhub.io/operator/keda
11. Production-grade authentication
11
• Typical security concerns:
• Re-use secrets from scaled target – No separate identities
• Duplication of secrets – Harder to manage & rotate
• Re-use trigger authentication across ScaledObject/ScaledJobs with
TriggerAuthentication (namespaced) or ClusterTriggerAuthentication
• Provides out-of-the-box integration with sources such as:
• Environment variables (on scale target)
• Kubernetes secrets
• Pod Identity (“No secret authentication” - Azure / AWS)
• HashiCorp Vault
13. Running Azure Serverless anywhere
January 2021 Application Autoscaling Made Easy With Kubernetes Event-Driven Autoscaling (KEDA) 13
13
Hosting On-Prem
Multi-Cloud
Edge
Shared Runtime Dedicated Runtime (ISE)
Shared Runtime Dedicated Runtimes Self-Hosting on AKS
14. Scale Azure Functions on Kubernetes with KEDA
January 2021 Application Autoscaling Made Easy With Kubernetes Event-Driven Autoscaling (KEDA) 14
| Azure Function Core Tools now supports KEDA 2.0
| Easily deploy functions to Kubernetes, without having to worry about KEDA
| Automatically installs KEDA
| Automatically configures & deploys ScaledObjects
| It’s as simple as:
| func new --name ndc-london --lanuage C# --template ServiceBusQueueTrigger
| Creates a new Function project
| func init --docker-only
| Adds a Dockerfile to your project
| func kubernetes deploy --name ndc-london --registry ghcr.io/tomkerkhove/demos [--dry-
run]
| Build & push container image to container registry of choice
| Deploy function to Kubernetes with KEDA & scaledobject
16. Roadmap
January 2021 Application Autoscaling Made Easy With Kubernetes Event-Driven Autoscaling (KEDA) 16
| Introduce new scalers & secret sources
| Provide first-class support for HTTP-based autoscaling
| Provide Kubernetes Events on major KEDA events
| Build an ecosystem around external scalers
| Propose to graduate to CNCF Incubation later this year
| Public roadmap: https://github.com/kedacore/keda/projects/3
17. KEDA 💘 Community
17
• 2.8k stars on GitHub
• 100+ contributors, incl.
• Microsoft
• Red Hat
• Codit
• IBM
• Shutterstock
• Astronomer.io
• Bi-weekly community standups
• https://keda.sh
| Who’s adopting KEDA in their own products?
| Apache Airflow & Astronomer are using
KEDA to autoscale workflows.
| Dapr is recommending KEDA to autoscale Dapr
apps
| Fission is building a catalog of KEDA
connectors to scale their serverless functions on
Kubernetes
| Knative is using KEDA to autoscale Knative
Event Sources
18. January 2021 Application Autoscaling Made Easy With Kubernetes Event-Driven Autoscaling (KEDA) 18
Node #3
Infrastructure
Customer Service
Scale Controller
Horizontal Pod Autoscalers
(HPA)
Kubernetes Event-driven Autoscaling provides
application autoscaling on a variety of metric
sources such as Service Mesh Interface, Service
Bus, Monitor, etc.
Virtual Kubelet & Virtual Nodes allow you to
run workloads outside of the Kubernetes
cluster.
Cluster Autoscaler allows you to
automatically add/remove nodes to the
Kubernetes cluster.
Order Service
Customer Service
Order Service
Customer Service
Order Service
Order Service
Customer Service
Customer Service
Customer Service
Customer Service
Order Service
Order Service
Customer Service
Customer Service
Order Service
Order Service
Customer Service
Customer Service
Order Service
Node #1 Node #2
Customer Service Order Service Order Service