Warning
You are currently viewing v2.14 of the documentation and it is not the latest. For the most recent documentation, kindly click here.
Kubernetes Cluster:
KEDA Installation:
kubectl:
kubectl command-line tool is required to interact with your Kubernetes cluster.kubectl on your operating system.kubectl to communicate with your Kubernetes cluster by following the cluster-specific instructions provided by your Kubernetes setup.KEDA supports various scalers that correspond to different event sources or triggers. Determining the right scaler is crucial for scaling your application based on the desired event source.
If you want to scale based on incoming HTTP traffic, you would need the HTTP Add-on.
Note: The HTTP Add-on is still in beta stage and may not provide the full functionality or stability expected in a production environment.
If you want to scale based on messages in a RabbitMQ queue, you would need the RabbitMQ scaler.
If you want to scale based on a cron schedule, you would need the Cron scaler.
Some scalers are part of the core KEDA installation, while others need to be installed separately as add-ons.
helm install for Helm charts) or applying YAML manifests using kubectl.KEDA uses a custom resource called ScaledObject to define how your application should be scaled based on the chosen event source or trigger.
scaledobject.yaml) in a text editor or using the command line.ScaledObject configuration in this file, following the structure and examples provided in the documentation of your chosen scaler.ScaledObject configuration includes the following sections:
metadata: Specifies the name and namespace for the ScaledObject.spec.scaleTargetRef: Identifies the Kubernetes deployment or other resource that should be scaled.spec.pollingInterval (optional): Specifies how often KEDA should check for scaling events (defaults to 15 seconds).spec.cooldownPeriod (optional): Specifies the cool-down period in seconds after a scaling event (defaults to 300 seconds).spec.maxReplicaCount (optional): Specifies the maximum number of replicas to scale up to (defaults to 100).spec.triggers: Defines the specific configuration for your chosen scaler, including any required parameters or settings.triggers section and any other required or optional configuration settings.scaledobject.yaml file after making the necessary modifications.Once you have created the ScaledObject configuration file, apply it to your Kubernetes cluster using kubectl:
Open a terminal or command prompt and navigate to the directory containing the scaledobject.yaml file.
Run the following command to apply the ScaledObject configuration:
kubectl apply -f scaledobject.yaml
scaledobject.keda.sh/<scaled-object-name> created
Verify that the ScaledObject has been created successfully by running:
kubectl get scaledobjects
This should display the ScaledObject you just created.
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE
<scaled-object-name> Deployment <deployment-name> 1 10 cpu <none> True False <none> 10s
After applying the ScaledObject configuration, KEDA will start monitoring the specified event source and scale your application accordingly, based on the configurations you provided.
You can monitor the scaling events and logs generated by KEDA using the following commands:
List all ScaledObjects in your cluster:
kubectl get scaledobjects
This will show you the current state of your ScaledObject and the number of replicas.
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE
<scaled-object-name> Deployment <deployment-name> 1 10 cpu <none> True False <none> 10s
View the logs of the KEDA operator:
kubectl logs -n keda -l app=keda-operator
The KEDA operator logs will show you detailed information about scaling events, decisions made by KEDA based on the event source, and any errors or warnings.
{"level":"info","ts":<timestamp>,"logger":"scalehandler","msg":"Successfully scaled deployment","scaledobject.Namespace":"<namespace>","scaledobject.Name":"<scaled-object-name>","scaler":<scaler-type>}