Deploying KEDA Latest
We provide a few approaches to deploy KEDA runtime in your Kubernetes clusters:
💡 NOTE: KEDA requires Kubernetes cluster version 1.27 and higher
Don’t see what you need? Feel free to create an issue on our GitHub repo.
Deploying with Helm
Install
Deploying KEDA with Helm is very simple:
-
Add Helm repo
helm repo add kedacore https://kedacore.github.io/charts
-
Update Helm repo
helm repo update
-
Install
keda
Helm chartHelm 3
helm install keda kedacore/keda --namespace keda --create-namespace
To deploy the CRDs separately from the Helm chart, use the keda-2.xx.x-crds.yaml
file provided on the GitHub releases page.
💡 NOTE: Are you upgrading to v2.2.1 or above? Make sure to read our troubleshooting guide to fix potential CRD issues.
Uninstall
If you want to remove KEDA from a cluster, you first need to remove any ScaledObjects and ScaledJobs that you have created. Once that is done, the Helm chart can be uninstalled:
kubectl delete $(kubectl get scaledobjects.keda.sh,scaledjobs.keda.sh -A \
-o jsonpath='{"-n "}{.items[*].metadata.namespace}{" "}{.items[*].kind}{"/"}{.items[*].metadata.name}{"\n"}')
helm uninstall keda -n keda
Note: if you uninstall the Helm chart without first deleting any ScaledObject or ScaledJob resources you have created, they will become orphaned. In this situation, you will need to patch the resources to remove their finalizers. Once this is done, they should automatically be removed:
for i in $(kubectl get scaledobjects -A \
-o jsonpath='{"-n "}{.items[*].metadata.namespace}{" "}{.items[*].kind}{"/"}{.items[*].metadata.name}{"\n"}');
do kubectl patch $i -p '{"metadata":{"finalizers":null}}' --type=merge
done
for i in $(kubectl get scaledjobs -A \
-o jsonpath='{"-n "}{.items[*].metadata.namespace}{" "}{.items[*].kind}{"/"}{.items[*].metadata.name}{"\n"}');
do kubectl patch $i -p '{"metadata":{"finalizers":null}}' --type=merge
done
Deploying with Operator Hub
Install
- On Operator Hub Marketplace locate and install KEDA operator to namespace
keda
- Create
KedaController
resource namedkeda
in namespacekeda
💡 NOTE: Further information on Operator Hub installation method can be found in the following repository.
Uninstall
Locate installed KEDA Operator in keda
namespace, then remove created KedaController
resource and uninstall KEDA operator.
Deploying using the deployment YAML files
Install
If you want to try KEDA on Minikube or a different Kubernetes deployment without using Helm you can still deploy it with kubectl
.
- We provide sample YAML declaration which includes our CRDs and all other resources in a file which is available on the GitHub releases page.
- We offer two options to deploy KEDA:
- Use
keda-2.xx.x.yaml
that includes all features, including admission webhooks (recommended) - Use
keda-2.xx.x-core.yaml
that installs the minimal required KEDA components, without admission webhooks
- Use
- We offer two options to deploy KEDA:
Run the following command (if needed, replace the version, in this case 2.14.0
, with the one you are using):
# Including admission webhooks
kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.14.0/keda-2.14.0.yaml
# Without admission webhooks
kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.14.0/keda-2.14.0-core.yaml
- Alternatively you can download the file and deploy it from the local path:
# Including admission webhooks
kubectl apply --server-side -f keda-2.14.0.yaml
# Without admission webhooks
kubectl apply --server-side -f keda-2.14.0-core.yaml
💡 NOTE:
--server-side
option is needed because the ScaledJob CRD is too long to process, see this issue for details.
- You can also find the same YAML declarations in our
/config
directory on our GitHub repo if you prefer to clone it.
git clone https://github.com/kedacore/keda && cd keda
VERSION=2.14.0 make deploy
Uninstall
- In case of installing from released YAML file just run the following command (if needed, replace the version, in this case
2.14.0
, with the one you are using):
# Including admission webhooks
kubectl delete -f https://github.com/kedacore/keda/releases/download/v2.14.0/keda-2.14.0.yaml
# Without admission webhooks
kubectl delete -f https://github.com/kedacore/keda/releases/download/v2.14.0/keda-2.14.0-core.yaml
- If you have downloaded the file locally, you can run:
# Including admission webhooks
kubectl delete -f keda-2.14.0.yaml
# Without admission webhooks
kubectl delete -f keda-2.14.0-core.yaml
- You would need to run these commands from within the directory of the cloned GitHub repo:
VERSION=2.14.0 make undeploy
Deploying KEDA on MicroK8s
Install
If you want to try KEDA v2 on MicroK8s from 1.20
channel, KEDA is included into MicroK8s addons.
microk8s enable keda
Uninstall
To uninstall KEDA in MicroK8s, simply disable the addon as shown below.
microk8s disable keda