When working with Kubernetes-based event-driven autoscaling using KEDA (Kubernetes Event-driven Autoscaling), it’s sometimes necessary to uninstall the current version and perform a clean reinstall—especially when troubleshooting or upgrading to a newer release.
In this post, we’ll walk you through a complete KEDA uninstall and reinstall process, including how to properly remove all ScaledObjects
and ScaledJobs
.
π§Ό Step 1: Uninstall KEDA
The first step is to remove KEDA from your cluster using Helm:
helm uninstall keda -n keda
For reference, see the official uninstall documentation: KEDA Uninstall Guide
π§Ή Step 2: Clean Up ScaledObjects and ScaledJobs
Before KEDA can be fully uninstalled, it's important to delete any existing ScaledObjects
and ScaledJobs
. These resources may prevent a clean uninstall if not removed.
π List Existing Resources
kubectl get scaledobjects.keda.sh,scaledjobs.keda.sh -A
NAMESPACE NAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE AGE default *********** 20 20 azure-servicebus service-bus-auth - - 722d default *********** 20 20 azure-servicebus service-bus-auth - - 2y266d default *********** 20 20 azure-servicebus service-bus-auth - - 2y266d default *********** 20 20 azure-servicebus service-bus-auth - - 715d default *********** 20 20 azure-servicebus service-bus-auth - - 2y266d default *********** 20 20 azure-servicebus service-bus-auth - - 729d default *********** 20 20 azure-servicebus service-bus-auth - - 729d default *********** 20 20 azure-servicebus service-bus-auth - - 2y266d default *********** 20 20 azure-servicebus service-bus-auth - - 729d default *********** 20 20 azure-servicebus service-bus-auth - - 2y266d default *********** 20 20 azure-servicebus service-bus-auth - - 721d default *********** 20 20 azure-servicebus service-bus-auth - - 651d default *********** 20 20 azure-servicebus service-bus-auth - - 721d
π Remove Finalizers (Optional but Recommended)
If finalizers are present on ScaledJobs
, they can block deletion. Use the following script to remove them:
for i in $(kubectl get scaledjobs -A -o jsonpath='{.items[*].metadata.name}{"\n"}'); do
kubectl patch scaledjob.keda.sh/$i -p '{"metadata":{"finalizers":null}}' --type=merge
done
❌ Delete the ScaledJobs
Once finalizers are cleared, delete all the ScaledJobs
:
for i in $(kubectl get scaledjobs -A -o jsonpath='{.items[*].metadata.name}{"\n"}'); do
kubectl delete scaledjob $i
done
π Step 3: Verify Resource Cleanup
Check whether all KEDA-related resources are removed:
kubectl get all -n keda

π§― Step 4: Manual Deletion (If Helm Uninstall Fails)
If helm uninstall
doesn’t completely remove KEDA components, you can manually delete them with the following commands:
kubectl delete deployment.apps/keda-operator -n keda
kubectl delete deployment.apps/keda-metrics-apiserver -n keda
kubectl delete service/keda-metrics-apiserver -n keda
π Step 5: Install the Latest Version of KEDA
Once cleanup is complete, install the latest version of KEDA.
Option 1: Apply Directly from GitHub
kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.12.0/keda-2.12.0-core.yaml
Option 2: Apply a Local File
kubectl apply --server-side -f keda-2.12.0-core.yaml
namespace/keda serverside-applied
customresourcedefinition.apiextensions.k8s.io/clustertriggerauthentications.keda.sh serverside-applied
customresourcedefinition.apiextensions.k8s.io/scaledjobs.keda.sh serverside-applied
customresourcedefinition.apiextensions.k8s.io/scaledobjects.keda.sh serverside-applied
customresourcedefinition.apiextensions.k8s.io/triggerauthentications.keda.sh serverside-applied
serviceaccount/keda-operator serverside-applied
role.rbac.authorization.k8s.io/keda-operator serverside-applied
clusterrole.rbac.authorization.k8s.io/keda-external-metrics-reader serverside-applied
clusterrole.rbac.authorization.k8s.io/keda-operator serverside-applied
rolebinding.rbac.authorization.k8s.io/keda-operator serverside-applied
rolebinding.rbac.authorization.k8s.io/keda-hpa-controller-external-metrics serverside-applied
clusterrolebinding.rbac.authorization.k8s.io/keda-operator serverside-applied
clusterrolebinding.rbac.authorization.k8s.io/keda-system-auth-delegator serverside-applied
service/keda-operator serverside-applied
service/keda-metrics-apiserver serverside-applied
deployment.apps/keda-metrics-apiserver serverside-applied
deployment.apps/keda-operator serverside-applied
apiservice.apiregistration.k8s.io/v1beta1.external.metrics.k8s.io serverside-applied
For full details, see: KEDA Install Guide
✅ Wrapping Up
This guide helps you perform a clean uninstall and reinstall of KEDA, avoiding issues like lingering resources or stuck finalizers. A clean install ensures your Kubernetes environment remains stable and scalable.
If you found this helpful, bookmark it for future upgrades or troubleshooting!
Happy scaling! π
No comments:
Post a Comment