KEDA event-driven autoscaling¶
Overview¶
KEDA (Kubernetes Event-Driven Autoscaling) and the KEDA HTTP Add-on are generic cluster amenities that multiple DataRobot components rely on for HTTP- and event-based horizontal scaling, including the ability to scale to zero for cost optimization. Because KEDA is installed cluster-wide and shared across components, its prerequisites, installation, configuration values, network requirements, and version requirements are documented here rather than in any single component's page.
Components that use KEDA include:
- Custom model deployments (LRS) — path-based (
pathPrefixes/hosts)HTTPScaledObjectrouting. See LRS auto-scaling with KEDA. - Workload API protons — header-based (
spec.headers)HTTPScaledObjectrouting, which requires the KEDA HTTP Add-on 0.12.0 or later. See KEDA HTTP Add-on version requirements.
Prerequisites¶
Before enabling any KEDA-based autoscaling, the following components must be installed and configured in your Kubernetes cluster:
Required components¶
- KEDA (Kubernetes Event-Driven Autoscaling)
- Version 2.17 or later recommended
- Must be installed cluster-wide
-
https://github.com/kedacore/keda?tab=readme-ov-file#deploying-keda
-
KEDA HTTP Add-on
- Compatible with your KEDA version
- Provides HTTP-specific scaling capabilities
- See the version requirements for the minimum version your workloads need
- https://github.com/kedacore/http-add-on/?tab=readme-ov-file#installation
Installation requirements¶
KEDA and the KEDA HTTP Add-on must be installed by your platform administrator before enabling autoscaling features. Contact your DataRobot administrator or refer to the KEDA documentation for installation instructions.
Configuration values for KEDA HTTP Add-on¶
When installing the KEDA HTTP Add-on, ensure the following default values are configured:
keda-add-ons-http:
interceptor:
responseHeaderTimeout: 600s
replicas:
waitTimeout: 300s
This configuration ensures proper handling of long-running requests and prevents premature timeouts.
See additional configuration options here https://github.com/kedacore/charts/blob/main/http-add-on/Chart.yaml
Network¶
The HTTP Add-on brings a proxy component that records metrics and routes traffic from the ingress to the scaled workload. It's therefore crucial that the HTTP Add-on has network access to send traffic to the target workload's pods.
KEDA HTTP Add-on version requirements¶
DataRobot uses the KEDA HTTP Add-on for two scaling paths with different minimum versions:
| Workload type | HTTPScaledObject routing |
Version requirements |
|---|---|---|
| Custom model deployments (LRS) | Path-based (pathPrefixes/hosts) |
No version restrictions |
| Workload API protons | Header-based (spec.headers) |
0.12.0 or later |
Workload API protons route requests with header-based HTTPScaledObject rules (spec.headers), introduced in the KEDA HTTP Add-on v0.12.0. For scale-to-zero to work properly, clusters that run Workload API protons must install the KEDA HTTP Add-on 0.12.0 or later. Custom model (LRS) deployments use path-based routing and continue to work on earlier versions.
Upgrade the HTTP Add-on CRDs
Upgrading the KEDA HTTP Add-on Helm chart does not always update the HTTPScaledObject CRD. When upgrading to 0.12.0 or later to enable header-based routing, apply the CRDs from the target chart version explicitly so the new spec.headers field is recognized. Skipping this step causes header-based HTTPScaledObject rules to be silently ignored.