Install the Kubernetes Event-driven Autoscaling (KEDA) add-on by using Azure CLI
This article shows you how to install the Kubernetes Event-driven Autoscaling (KEDA) add-on to Azure Kubernetes Service (AKS) by using Azure CLI. The article includes steps to verify that it's installed and running.
Important
The KEDA add-on installs version 2.7.0 of KEDA on your cluster.
Prerequisites
- An Azure subscription. If you don't have an Azure subscription, you can create a free account.
- Azure CLI installed.
- Firewall rules are configured to allow access to the Kubernetes API server. (learn more)
Install the aks-preview Azure CLI extension
Important
AKS preview features are available on a self-service, opt-in basis. Previews are provided "as is" and "as available," and they're excluded from the service-level agreements and limited warranty. AKS previews are partially covered by customer support on a best-effort basis. As such, these features aren't meant for production use. For more information, see the following support articles:
To install the aks-preview extension, run the following command:
az extension add --name aks-preview
Run the following command to update to the latest version of the extension released:
az extension update --name aks-preview
Register the 'AKS-KedaPreview' feature flag
Register the AKS-KedaPreview
feature flag by using the az feature register command, as shown in the following example:
az feature register --namespace "Microsoft.ContainerService" --name "AKS-KedaPreview"
It takes a few minutes for the status to show Registered. Verify the registration status by using the az feature show command:
az feature show --namespace "Microsoft.ContainerService" --name "AKS-KedaPreview"
When the status reflects Registered, refresh the registration of the Microsoft.ContainerService resource provider by using the az provider register command:
az provider register --namespace Microsoft.ContainerService
Install the KEDA add-on with Azure CLI
To install the KEDA add-on, use --enable-keda
when creating or updating a cluster.
The following example creates a myResourceGroup resource group. Then it creates a myAKSCluster cluster with the KEDA add-on.
az group create --name myResourceGroup --location eastus
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-keda
For existing clusters, use az aks update
with --enable-keda
option. The following code shows an example.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--enable-keda
Get the credentials for your cluster
Get the credentials for your AKS cluster by using the az aks get-credentials
command. The following example command gets the credentials for myAKSCluster in the myResourceGroup resource group:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verify that the KEDA add-on is installed on your cluster
To see if the KEDA add-on is installed on your cluster, verify that the enabled
value is true
for keda
under workloadAutoScalerProfile
.
The following example shows the status of the KEDA add-on for myAKSCluster in myResourceGroup:
az aks show -g "myResourceGroup" --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled"
Verify that KEDA is running on your cluster
You can verify KEDA that's running on your cluster. Use kubectl
to display the operator and metrics server installed in the AKS cluster under kube-system namespace. For example:
kubectl get pods -n kube-system
The following example output shows that the KEDA operator and metrics API server are installed in the AKS cluster along with its status.
kubectl get pods -n kube-system
keda-operator-********-k5rfv 1/1 Running 0 43m
keda-operator-metrics-apiserver-*******-sj857 1/1 Running 0 43m
To verify the version of your KEDA, use kubectl get crd/scaledobjects.keda.sh -o yaml
. For example:
kubectl get crd/scaledobjects.keda.sh -o yaml
The following example output shows the configuration of KEDA in the app.kubernetes.io/version
label:
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.8.0
creationTimestamp: "2022-06-08T10:31:06Z"
generation: 1
labels:
addonmanager.kubernetes.io/mode: Reconcile
app.kubernetes.io/component: operator
app.kubernetes.io/name: keda-operator
app.kubernetes.io/part-of: keda-operator
app.kubernetes.io/version: 2.7.0
name: scaledobjects.keda.sh
resourceVersion: "2899"
uid: 85b8dec7-c3da-4059-8031-5954dc888a0b
spec:
conversion:
strategy: None
group: keda.sh
names:
kind: ScaledObject
listKind: ScaledObjectList
plural: scaledobjects
shortNames:
- so
singular: scaledobject
scope: Namespaced
# Redacted for simplicity
While KEDA provides various customization options, the KEDA add-on currently provides basic common configuration.
If you have requirement to run with another custom configurations, such as namespaces that should be watched or tweaking the log level, then you may edit the KEDA YAML manually and deploy it.
However, when the installation is customized there will no support offered for custom configurations.
Disable KEDA add-on from your AKS cluster
When you no longer need KEDA add-on in the cluster, use the az aks update
command with--disable-keda option. This execution will disable KEDA workload auto-scaler.
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--disable-keda
Next steps
This article showed you how to install the KEDA add-on on an AKS cluster using Azure CLI. The steps to verify that KEDA add-on is installed and running are included. With the KEDA add-on installed on your cluster, you can deploy a sample application to start scaling apps.
You can troubleshoot KEDA add-on problems in this article.
Feedback
Submit and view feedback for