Tracing the evolution of KEDA v2.x releases from 2023 to 2026: new scalers, the HTTP Add-on, metrics server improvements, up to the stable v2.20.2 release in July 2026, plus the 2026 headline features and the direction of the v3 roadmap.

In the previous episode, 19, you learned how to measure autoscaling performance: scale-up latency, cold start, and the trade-off between cost and responsiveness. Now it's time to pause and look up: what does the KEDA evolution actually look like in this v2.x era, and what stable features are available today — the v2.20.2 (July 2026) release.
Understanding the release map matters, not just for the pride of using the latest version. Every release carries real decisions: when to upgrade, whether the scalers you use are affected, and which features are considered stable versus still experimental. This episode maps the v2.x journey from 2023 to 2026, highlights the 2026 headline features, then closes with the direction of the v3 roadmap.
KEDA officially became a CNCF graduated project in August 2023 — a signal that the project is stable, documented, and safe to build a production foundation on. Since then the v2.x release cadence has been consistent: one minor release every few months, plus patch releases for urgent fixes. The pattern is like a scheduled engine service: routine maintenance (minor) and quick fixes when something breaks (patch).
KEDA follows semantic versioning: MAJOR.MINOR.PATCH. Minor releases (v2.19 to v2.20) bring new features and behavior changes — always read the changelog before upgrading. Patch releases (v2.20 to v2.20.2) only contain fixes without new features, so they're much safer to apply immediately. You'll carry this habit into episode 21 when we discuss the production lifecycle.
| Version | Period | Key Highlights |
|---|---|---|
| v2.10 | 2023 | New scalers for Azure, Kafka, and GCP; admission webhooks refinements |
| v2.11 | 2023 | Post-CNCF graduated stabilization (August 2023) |
| v2.12 | 2023 | Operator stability fixes; early experiments on the metrics server |
| v2.13 | 2024 | New scalers for AWS and databases; authentication hardening |
| v2.14 | 2024 | Polling improvements; more mature scaling strategy support |
| v2.15 | 2024 | HTTP Add-on maturation; idle replica count optimization |
| v2.16 | 2024 | ClusterTriggerAuthentication and RBAC refinements |
| v2.17 | 2025 | Newest scalers; webhook compatibility fixes for Kubernetes 1.30+ |
| v2.18 | 2025 | Stability under high scaler load; improved metric granularity |
| v2.19 | 2025 | Metrics server refinements; scale-to-zero pipeline experiments |
| v2.20 | 2026 | Latest scaler support; comprehensive stability fixes |
| v2.20.2 | Jul 2026 | Stability patch: webhooks, metrics server, backported fixes |
A clear pattern emerges: the early v2.x era was filled with scaler additions (from dozens initially to 70+ scalers), while the late 2025-2026 period is dominated by hardening — stability, metrics, and operational fixes. That's a sign of a maturing project: new features still arrive, but reliability takes priority.
The scaler ecosystem keeps widening. In 2026, the latest support covers event sources from the three major clouds, self-hosted queues, and analytics platforms. The principle is the same as episodes 7-9: one ScaledObject, one trigger, and KEDA handles the rest.
| Event Source | Example Scaler | How to Verify Support |
|---|---|---|
| AWS queue | aws-sqs-queue | kubectl get scaledobject -n demo -o wide |
| Stream | kafka | helm list -n keda | grep keda |
| Schedule | cron | kubectl get scaledobject | grep -i cron |
Before using a new scaler, verify which version supports it. The fastest way to check your installed version: kubectl get deploy -n keda -o custom-columns=NAME:.metadata.name,IMAGE:.spec.template.spec.containers[0].image — make sure the image tag shows v2.20.x.
The category that's least visible but most important. Stability fixes in the 2025-2026 releases include: timeout handling for slow scalers, healthier metric retries, and preventing one failing scaler from dragging down other ScaledObjects. The effect shows up in episode 18: Unknown status and stale HPA updates are far rarer in v2.20 than in earlier versions.
ClusterTriggerAuthentication (from episodes 6 and 14) has been continuously polished throughout the v2.x era and is one of the 2026 flagship features. It lets a single credential be used across namespaces without duplicating secrets in every team — exactly the multi-tenancy need from episode 14:
apiVersion: keda.sh/v1alpha1
kind: ClusterTriggerAuthentication
metadata:
name: keda-rabbitmq-creds
spec:
secretTargetRef:
- parameter: host
name: rabbitmq-secret
key: hostApply it once: kubectl apply -f cta-rabbitmq.yaml. Every ScaledObject in any namespace can reference it via clusterTriggerAuthenticationRef, just by naming that CTA — as long as the KEDA operator has permission to read the secret in its origin namespace.
The v2.x era was also a laboratory. Some features ship as experiments before being locked in as stable — for example the refinements to how the metrics server exposes keda_scaler_* metrics and the scale-to-zero pipeline. The result: the observability you learned in episode 18 is now more reliable, with a more accurate keda_scaler_errors_total that distinguishes scaler errors from connection errors.
Check the metrics server health directly: kubectl get apiservice v1beta1.external.metrics.k8s.io — make sure its condition is Available. This API is the bridge between HPA and KEDA, so if it has problems, all autoscaling is affected.
The HTTP Add-on (episodes 9 and 12) had a long journey through the v2.x era. From a separate project, it became a component used alongside KEDA to scale-to-zero HTTP workloads: HTTPScaledObject manages targetPendingRequests and the interceptor holds requests until replicas are ready. In 2026 releases, compatibility with Kubernetes 1.30+ keeps improving, and the interceptor is getting better at keeping requests safely queued without timeouts that waste the user experience.
For anyone running a public API with unpredictable traffic patterns, the HTTP Add-on plus a cron scaler is a solid pattern: HTTP handles organic spikes, cron prepares capacity for scheduled events — two techniques from episode 7 working together.
In the midst of v2.20 stability, the community is already preparing the v3 roadmap. Its direction isn't just a new version, but a re-foundation: a rewritten metrics server that's more reliable and maintainable, a more modular scaler SDK so community contributions are easier, firmer multi-tenancy, and smoother integration with scale-from-zero ecosystems like Knative.
For you, the message is simple: the skills built from episodes 0-19 won't go to waste. The ScaledObject, trigger, and authentication concepts remain the core language in v3. The official keda.sh site is always the first reference for tracking this development, both for concept documentation and the changelog on GitHub kedacore/keda.
A habit you must carry into production: verify the installed version before planning an upgrade. Turn this step into a checklist:
helm list -n keda
kubectl get deploy -n keda -o custom-columns=NAME:.metadata.name,IMAGE:.spec.template.spec.containers[0].image
kubectl get crd scaledobjects.keda.shImportant note: helm list -n keda shows the installed chart, while kubectl get deploy -n keda shows the operator image tag actually running. Both matter because the chart can already be updated while the rollout hasn't finished: kubectl get pods -n keda to make sure everything is Running.
This episode closes your understanding of releases: the v2.x evolution from 2023 to 2026 with scaler additions reaching 70+ types, the maturation of the HTTP Add-on and metrics server, the stable v2.20.2 release in July 2026, 2026 headline features in the form of the newest scalers, stability fixes, and ClusterTriggerAuthentication, plus the v3 roadmap direction promising a new foundation.
Points you should take away:
In the next episode, episode 21, we enter the production phase: a production-ready architecture with KEDA, Karpenter, and HPA behavior, GitOps for CRDs, and operator monitoring. See you there!