Cluster Click here for latest

Guidance & requirements for running KEDA in your cluster

Cluster capacity requirements

The KEDA runtime require the following resources in a production-ready setup:

OperatorLimit: 1, Request: 100mLimit: 1000Mi, Request: 100Mi
Metrics ServerLimit: 1, Request: 100mLimit: 1000Mi, Request: 100Mi

These are used by default when deploying through YAML.

💡 For more info on CPU and Memory resource units and their meaning, see this link.

Firewall requirements

KEDA requires to be accessible inside the cluster to be able to autoscale.

Here is an overview of the required ports that need to be accessible for KEDA to work:

443Used by Kubernetes API server to get metricsRequired for all platforms, except for Google Cloud.
6443Used by Kubernetes API server to get metricsOnly required for Google Cloud

High Availability

KEDA does not provide support for high-availability due to upstream limitations.

Here is an overview of all KEDA deployments and the supported replicas:

DeploymentSupport ReplicasReasoning
Metrics Server1Limitation in k8s custom metrics server

HTTP Timeouts

Some scalers issue HTTP requests to external servers (i.e. cloud services). Each applicable scaler uses its own dedicated HTTP client with its own connection pool, and by default each client is set to time out any HTTP request after 3 seconds.

You can override this default by setting the KEDA_HTTP_DEFAULT_TIMEOUT environment variable to your desired timeout in milliseconds. For example, on Linux/Mac/Windows WSL2 operating systems, you’d use this command to set to 1 second:


And on Windows Powershell, you’d use this command:


All applicable scalers will use this timeout. Setting a per-scaler timeout is currently unsupported.