Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Procedure for Setting up a Scaler #1408

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3a8a773
chore: Remove deprecated AAD-Pod-Identity and AWS-KIAM auths (#1388)
JorTurFer May 7, 2024
aba0894
potential typo in Keda documentation (#1392)
hLudde May 17, 2024
e73a64a
update postgres docs for nulls and coalesce (#1393)
robpickerill May 20, 2024
a3c88ed
add note for null and coalesce for mysql (#1396)
robpickerill May 23, 2024
b629da7
add note for null and coalesce for mssql (#1397)
robpickerill May 23, 2024
6145ce3
fix a typo (#1399)
AlonGluz May 29, 2024
dbd66c1
Prometheus: Mark queryParameters as an optional field instead of an r…
ahinh43 May 29, 2024
7cb0055
feat: Introduce category per scale (2.14+) (#1405)
tomkerkhove Jun 11, 2024
a46b64f
Feat: Provide filtering capabilities for scalers (#1400)
thisisobate Jun 14, 2024
de4f53d
procedure for Setting up a Scaler
shubhusion Jun 16, 2024
2391665
Update scalersetup.md
shubhusion Jun 16, 2024
7cb289c
Update Scalersetup.md
shubhusion Jun 16, 2024
de0860c
Updated Scalersetup.md
shubhusion Jun 16, 2024
ea04b79
update scalersetup.md
shubhusion Jun 16, 2024
ae90ed2
update Scaler.md
shubhusion Jun 16, 2024
e1dcf07
updated ScalerSetup.md
shubhusion Jun 16, 2024
c80c473
updated ScalerSetup.md
shubhusion Jun 16, 2024
4ab758b
chore: add docs for adding new filter to README (#1407)
thisisobate Jun 17, 2024
5e85276
procedure for Setting up a Scaler
shubhusion Jun 16, 2024
cd49c90
Update scalersetup.md
shubhusion Jun 16, 2024
f652b55
Update Scalersetup.md
shubhusion Jun 16, 2024
22cab1d
Updated Scalersetup.md
shubhusion Jun 16, 2024
3536366
update scalersetup.md
shubhusion Jun 16, 2024
0f25bf3
update Scaler.md
shubhusion Jun 16, 2024
3fa9ea3
updated ScalerSetup.md
shubhusion Jun 16, 2024
5df478d
updated ScalerSetup.md
shubhusion Jun 16, 2024
a191cf0
Document the new --ca-dir= flag (#1402)
joelsmith Jun 19, 2024
4699281
docs: Move contribution information from README to CONTRIBUTING (#1412)
tomkerkhove Jun 25, 2024
f015f5a
Update scalersetup
shubhusion Jun 28, 2024
a9616e9
Update Scaler.md
shubhusion Jun 28, 2024
dc2eaa8
Update setupscaler.md Signed-off-by: Shubham Sharma<shubham27.sharma0…
shubhusion Jun 28, 2024
0a2f1be
Merge branch 'main' into main
shubhusion Jun 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/docs/2.14/operate/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ We provide guidance & requirements around various areas to operate KEDA:
- Integrate with Prometheus ([link](./prometheus))
- Integrate with OpenTelemetry Collector (Experimental) ([link](./opentelemetry))
- Security ([link](./security))
- Setting Up a Scaler ([link](./setupscaler))
116 changes: 116 additions & 0 deletions content/docs/2.14/operate/setupscaler.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
+++
title = "Setupscaler"
weight = 500
description = "Procedure to Setup a Scaler in KEDA"
+++

## Prerequisites

1. **Kubernetes Cluster**:
- Ensure you have a running Kubernetes cluster set up and accessible.
- If you don't have a cluster yet, follow the [official Kubernetes documentation](https://kubernetes.io/docs/setup/) to create a new cluster suitable for your environment (local machine, cloud provider, etc.).

2. **KEDA Installation**:
- KEDA needs to be installed on your Kubernetes cluster before you can use it.
- Follow the [KEDA installation guide](https://keda.sh/docs/2.14/deploy/) carefully, including any prerequisites specific to your Kubernetes setup.
- The installation guide provides instructions for different installation methods (e.g., YAML, Helm charts, etc.). Choose the method that suits your needs.

3. **kubectl**:
- The `kubectl` command-line tool is required to interact with your Kubernetes cluster.
- Follow the [official kubectl installation guide](https://kubernetes.io/docs/tasks/tools/#kubectl) to install `kubectl` on your operating system.
- Once installed, configure `kubectl` to communicate with your Kubernetes cluster by following the cluster-specific instructions provided by your Kubernetes setup.

## Step 1: Identify the Scaler You Need

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.

1. Visit the [KEDA Scalers documentation](https://keda.sh/docs/2.14/scalers/) and browse through the list of available scalers.
2. Identify the scaler that matches the event source you want to use for scaling your application. For example:
- If you want to scale based on incoming HTTP traffic, you would need the **HTTP scaler**.
- 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**.
3. Open the documentation page for your chosen scaler and familiarize yourself with its specific requirements and configuration options.

## Step 2: Install the Required Scaler (if needed)

Some scalers are part of the core KEDA installation, while others need to be installed separately as add-ons.

1. Refer to the documentation of your chosen scaler to check if it needs to be installed separately.
2. If the scaler needs to be installed separately, follow the installation instructions provided in the scaler's documentation carefully.
- The installation process typically involves running a command (e.g., `helm install` for Helm charts) or applying YAML manifests using `kubectl`.
3. Verify that the scaler has been installed successfully by checking the output of the installation process or by running any provided verification commands.

## Step 3: Create a ScaledObject Configuration File

KEDA uses a custom resource called `ScaledObject` to define how your application should be scaled based on the chosen event source or trigger.

1. Create a new file (e.g., `scaledobject.yaml`) in a text editor or using the command line.
2. Define the `ScaledObject` configuration in this file, following the structure and examples provided in the documentation of your chosen scaler.
3. Typically, the `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.
4. Refer to the scaler's documentation for detailed explanations and examples of the `triggers` section and any other required or optional configuration settings.
5. Save the `scaledobject.yaml` file after making the necessary modifications.

## Step 4: Apply the ScaledObject Configuration

Once you have created the `ScaledObject` configuration file, apply it to your Kubernetes cluster using `kubectl`:

1. Open a terminal or command prompt and navigate to the directory containing the `scaledobject.yaml` file.
2. Run the following command to apply the `ScaledObject` configuration:

```bash
kubectl apply -f scaledobject.yaml
```

```plaintext
scaledobject.keda.sh/<scaled-object-name> created
```

3. Verify that the `ScaledObject` has been created successfully by running:

```bash
kubectl get scaledobjects
```

This should display the `ScaledObject` you just created.

```plaintext
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.

## Step 5: Monitor Scaling Events

You can monitor the scaling events and logs generated by KEDA using the following commands:

1. List all `ScaledObjects` in your cluster:

```bash
kubectl get scaledobjects
```

This will show you the current state of your `ScaledObject` and the number of replicas.

```plaintext
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
```

2. View the logs of the KEDA operator:

```bash
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.

```plaintext
{"level":"info","ts":<timestamp>,"logger":"scalehandler","msg":"Successfully scaled deployment","scaledobject.Namespace":"<namespace>","scaledobject.Name":"<scaled-object-name>","scaler":<scaler-type>}
```
116 changes: 116 additions & 0 deletions content/docs/2.15/operate/setupscaler.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
+++
title = "Setupscaler"
weight = 500
description = "Procedure to Setup a Scaler in KEDA"
+++

## Prerequisites

1. **Kubernetes Cluster**:
- Ensure you have a running Kubernetes cluster set up and accessible.
- If you don't have a cluster yet, follow the [official Kubernetes documentation](https://kubernetes.io/docs/setup/) to create a new cluster suitable for your environment (local machine, cloud provider, etc.).

2. **KEDA Installation**:
- KEDA needs to be installed on your Kubernetes cluster before you can use it.
- Follow the [KEDA installation guide](https://keda.sh/docs/2.14/deploy/) carefully, including any prerequisites specific to your Kubernetes setup.
- The installation guide provides instructions for different installation methods (e.g., YAML, Helm charts, etc.). Choose the method that suits your needs.

3. **kubectl**:
- The `kubectl` command-line tool is required to interact with your Kubernetes cluster.
- Follow the [official kubectl installation guide](https://kubernetes.io/docs/tasks/tools/#kubectl) to install `kubectl` on your operating system.
- Once installed, configure `kubectl` to communicate with your Kubernetes cluster by following the cluster-specific instructions provided by your Kubernetes setup.

## Step 1: Identify the Scaler You Need

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.

1. Visit the [KEDA Scalers documentation](https://keda.sh/docs/2.14/scalers/) and browse through the list of available scalers.
2. Identify the scaler that matches the event source you want to use for scaling your application. For example:
- If you want to scale based on incoming HTTP traffic, you would need the **HTTP scaler**.
- 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**.
3. Open the documentation page for your chosen scaler and familiarize yourself with its specific requirements and configuration options.

## Step 2: Install the Required Scaler (if needed)

Some scalers are part of the core KEDA installation, while others need to be installed separately as add-ons.

1. Refer to the documentation of your chosen scaler to check if it needs to be installed separately.
2. If the scaler needs to be installed separately, follow the installation instructions provided in the scaler's documentation carefully.
- The installation process typically involves running a command (e.g., `helm install` for Helm charts) or applying YAML manifests using `kubectl`.
3. Verify that the scaler has been installed successfully by checking the output of the installation process or by running any provided verification commands.

## Step 3: Create a ScaledObject Configuration File

KEDA uses a custom resource called `ScaledObject` to define how your application should be scaled based on the chosen event source or trigger.

1. Create a new file (e.g., `scaledobject.yaml`) in a text editor or using the command line.
2. Define the `ScaledObject` configuration in this file, following the structure and examples provided in the documentation of your chosen scaler.
3. Typically, the `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.
4. Refer to the scaler's documentation for detailed explanations and examples of the `triggers` section and any other required or optional configuration settings.
5. Save the `scaledobject.yaml` file after making the necessary modifications.

## Step 4: Apply the ScaledObject Configuration

Once you have created the `ScaledObject` configuration file, apply it to your Kubernetes cluster using `kubectl`:

1. Open a terminal or command prompt and navigate to the directory containing the `scaledobject.yaml` file.
2. Run the following command to apply the `ScaledObject` configuration:

```bash
kubectl apply -f scaledobject.yaml
```

```plaintext
scaledobject.keda.sh/<scaled-object-name> created
```

3. Verify that the `ScaledObject` has been created successfully by running:

```bash
kubectl get scaledobjects
```

This should display the `ScaledObject` you just created.

```plaintext
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.

## Step 5: Monitor Scaling Events

You can monitor the scaling events and logs generated by KEDA using the following commands:

1. List all `ScaledObjects` in your cluster:

```bash
kubectl get scaledobjects
```

This will show you the current state of your `ScaledObject` and the number of replicas.

```plaintext
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
```

2. View the logs of the KEDA operator:

```bash
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.

```plaintext
{"level":"info","ts":<timestamp>,"logger":"scalehandler","msg":"Successfully scaled deployment","scaledobject.Namespace":"<namespace>","scaledobject.Name":"<scaled-object-name>","scaler":<scaler-type>}
```
Binary file added static/img/scalers/cron/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/scalers/cron/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/scalers/cron/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/scalers/cron/image-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/scalers/cron/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.