← ClaudeAtlas

kedalisted

Configure, operate, and master KEDA (Kubernetes Event-driven Autoscaling) — ScaledObject, ScaledJob, TriggerAuthentication CRDs, 70+ scalers, HPA behavior tuning, scale-to-zero, the KEDA HTTP Add-on, production hardening, multi-trigger semantics, scalingModifiers formulas, GitOps integration, and troubleshooting stuck scalers. Covers the common traps (cooldownPeriod only applies to N→0, CPU/memory cannot drive scale-to-zero alone, activationThreshold vs threshold, multi-trigger max-of semantics, HPA conflicts).
air-gapped/skills · ★ 2 · AI & Automation · score 78
Install: claude install-skill air-gapped/skills
# KEDA — Kubernetes Event-driven Autoscaling KEDA extends Kubernetes HPA with event-driven scalers (queues, cron, Prometheus, etc.) and owns the `0 ↔ 1` transition so workloads can truly scale to zero. The skill covers three CRDs (`ScaledObject`, `ScaledJob`, `TriggerAuthentication`), 70+ scalers, HPA behavior tuning, and the gotchas that make production KEDA misbehave. This file holds the mental model and the 80% patterns. Reach for the files in `references/` for depth. ## Mental model — who owns what KEDA and the built-in HPA divide responsibility: | Transition | Owner | Mechanism | |---|---|---| | `0 → 1` activation | **KEDA operator** | Polls triggers every `pollingInterval` (default 30s). Any active trigger wakes the workload. | | `1 → N` scale-up | **HPA** (managed by KEDA) | Reads external metrics via `keda-operator-metrics-apiserver` every ~15s. Replicas = ceil(sum(metric) / target). | | `N → 1` scale-down | **HPA** | Damped by `behavior.scaleDown.stabilizationWindowSeconds` (default **300s**). | | `1 → 0` deactivation | **KEDA operator** | All triggers inactive for `cooldownPeriod` (default **300s**). | For each `ScaledObject`, KEDA creates a managed HPA named `keda-hpa-<scaledobject-name>`. Don't create a second HPA on the same target — it conflicts. If one already exists, KEDA's admission webhook rejects the ScaledObject until the manual HPA is deleted (or adopted via annotation `scaledobject.keda.sh/transfer-hpa-ownership: "true"`). ScaledJob is different: