KEDA is designed, tested and supported to be run on any Kubernetes cluster that runs Kubernetes v1.16.0 or above.
The KEDA runtime require the following resources in a production-ready setup:
|Operator||Limit: 1, Request: 100m||Limit: 1000Mi, Request: 100Mi|
|Metrics Server||Limit: 1, Request: 100m||Limit: 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.
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:
|Used by Kubernetes API server to get metrics||Required for all platforms, except for Google Cloud.|
|Used by Kubernetes API server to get metrics||Only required for Google Cloud|
KEDA does not provide full support for high-availability due to upstream limitations.
Here is an overview of all KEDA deployments and the HA notes:
|Metrics Server||1||You can run multiple replicas of our metrics sever, and it is recommended to add the |
--enable-aggregator-routing=true CLI flag to the kube-apiserver so that requests sent to our metrics servers are load balanced. However, you can only run one active metric server in a Kubernetes cluster serving external.metrics.k8s.io which has to be the KEDA metric server.
|Operator||1||While you can run multiple replicas of our operator, only one operator instance will be active. The rest will be standing by, which may reduce downtime during a failure. Multiple replicas will not improve the performance of KEDA, it could only reduce a downtime during a failover.This is only supported as of KEDA v2.6 if you are using our Helm chart.|