KEDA is a tool that helps Kubernetes automatically start or stop workers based on how busy things are.
Imagine you have some background jobs like Celery tasks. If there are no tasks, you don't need any workers running — that saves money.
But when new tasks come in, KEDA wakes up the workers to handle them.
Example config:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: celery-worker-scaledobject
spec:
scaleTargetRef:
name: celery-worker
minReplicaCount: 0
maxReplicaCount: 2
pollingInterval: 15 # seconds
cooldownPeriod: 300 # seconds
triggers:
- type: redis
metadata:
address: 10.147.77.27:6379
listName: dev_process_files_queue # your custom Celery queue
listLength: "8"