Warning
You are currently viewing v0.15 of the documentation and it is not the latest. For the most recent documentation, kindly click here.
Architecture
The three components of the HTTP Add-on, their responsibilities, and how they interact to scale HTTP workloads
Event-driven scalers such as those for Kafka or RabbitMQ can read the number of pending messages directly from a broker. HTTP has no equivalent concept: a request arrives, gets processed, and is gone. There is nothing for an autoscaler to query.
The HTTP Add-on solves this by placing dedicated infrastructure in the request path. An interceptor proxy sits in front of your application, counts requests as they flow through, and holds requests during cold starts while backends scale up. A scaler component aggregates those counts into metrics that KEDA can use to drive the Horizontal Pod Autoscaler (HPA).
Before diving into the HTTP Add-on components, a few KEDA primitives are relevant:
The HTTP Add-on consists of three components deployed into the cluster:
The interceptor is a reverse proxy that sits in the request path between the ingress layer and the backend service. It performs three functions:
The interceptor forwards requests to the backend’s Kubernetes Service, relying on standard Kubernetes service load balancing for distribution across pods.
The interceptor deployment is itself auto-scaled by KEDA via a ScaledObject created by the Helm chart.
The scaler is the bridge between the interceptor’s in-memory counters and KEDA’s scaling decisions. It implements the KEDA external scaler interface.
The scaler periodically polls all interceptor pods to fetch per-route request counts. It aggregates concurrency across pods for each route and computes request rate from the total request counters. When KEDA queries the scaler, it returns these aggregated metrics so KEDA can adjust replica counts.
See Scaling for details on how these metrics drive scaling decisions.
The operator is a Kubernetes controller manager that reconciles HTTP Add-on custom resources:
http.keda.sh/v1beta1) — Defines routing rules, scaling metrics, target service, and timeout/cold-start configuration in a single resource. Users pair it with a KEDA ScaledObject they create and manage.http.keda.sh/v1alpha1, deprecated) — Combines routing, scaling, and ScaledObject management in one resource. The operator automatically creates the corresponding ScaledObject.See the InterceptorRoute reference for the full API specification.
+---------+ +-------------+ +---------+
| Ingress +---->| Interceptor +---->| Backend |
+---------+ +------+------+ +---------+
|
poll metrics
|
+------+------+
| Scaler |
+------+------+
|
report metrics
|
+------+------+
| KEDA Core |
+------+------+
|
adjust replicas
|
+------+------+
| HPA |
+-------------+