KEDA: Kubernetes Event-Driven Autoscaling

KEDA 1.0 (maggio 2019) di Microsoft e Red Hat: event-driven autoscaling per Kubernetes. Scala workload basandosi su code (Kafka, RabbitMQ, SQS), metriche (Prometheus), cron, eventi custom. CNCF graduated 2023.

Open Source KEDAMicrosoftRed HatKubernetesAutoscalingCNCFOpen Source

HPA non basta

Kubernetes HPA (Horizontal Pod Autoscaler) scala basandosi su CPU/memoria — metrica troppo grossolana per workload event-driven: lunghezza queue Kafka, profondità RabbitMQ, messages SQS, custom metrics. Serve autoscaler che guardi tuple eventi esterni.

Il rilascio

KEDA (Kubernetes Event-Driven Autoscaling) è annunciato da Microsoft e Red Hat nel maggio 2019 a KubeCon Barcelona. Versione 1.0 rilasciata il 19 novembre 2019. Licenza Apache 2.0. Scritto in Go. Donato alla CNCF nel 2020, graduated nell’agosto 2023.

Come funziona

KEDA estende HPA K8s con ScaledObject (o ScaledJob) CRD:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata: { name: kafka-consumer }
spec:
  scaleTargetRef:
    name: my-consumer
  minReplicaCount: 0
  maxReplicaCount: 50
  triggers:
    - type: kafka
      metadata:
        bootstrapServers: kafka:9092
        topic: orders
        lagThreshold: "100"

KEDA osserva il lag del topic Kafka e scala il Deployment. Include scale-to-zero: se non ci sono messaggi, il Deployment scende a 0 repliche.

Scaler supportati

60+ scaler out-of-box:

  • Queues/Streaming — Kafka, RabbitMQ, ActiveMQ, NATS, Redis Streams, Azure Service Bus, AWS SQS/Kinesis, GCP Pub/Sub
  • Metrics — Prometheus, Datadog, New Relic, Azure Monitor, CloudWatch
  • Database — PostgreSQL, MySQL, MSSQL, MongoDB (row count)
  • Triggers — Cron, external webhook, Redis, etcd, Solace
  • AI/ML — Seldon, custom predictor via gRPC

Casi d’uso

  • Worker consumer Kafka che scala su lag
  • Batch processing triggerato da coda
  • Serverless-like su K8s (scale-to-zero)
  • Scheduled scaling — apri alle 8:00, chiudi alle 20:00
  • Spot workload — burst su low-priority
  • ML inference — scaling basato su richieste

Integrazione

  • Knative complementare per HTTP serverless
  • Argo Events — eventi in cluster
  • Istio + KEDA — scala basandosi su request-per-second
  • Prometheus Operator — custom metrics

Nel contesto italiano

KEDA è usato in:

  • E-commerce italiani con burst traffico (Black Friday, Natale)
  • Fintech — processing asincrono ordini
  • Telco — event-driven pipeline B/OSS
  • Industrial IoT — processing sensori
  • AI/ML — autoscaling model inference
  • PA digitale — pipeline batch PNRR/PSN

Permette di contenere costi cloud facendo scale-to-zero su workload idle, e gestire picchi imprevedibili senza provisioning statico.


Riferimenti: KEDA 1.0 (19 novembre 2019). Microsoft + Red Hat. Licenza Apache 2.0. Scritto in Go. CNCF graduated (agosto 2023). ScaledObject/ScaledJob CRD. 60+ scaler. Scale-to-zero.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi