You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/kedify-http-autoscaling/_index.md
+6-10Lines changed: 6 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,19 @@
1
1
---
2
-
title: Autoscaling HTTP applications on Kubernetes
2
+
title: Autoscale HTTP applications on Kubernetes with KEDA and Kedify
3
3
4
-
draft: true
5
-
cascade:
6
-
draft: true
7
-
8
4
minutes_to_complete: 45
9
5
10
-
who_is_this_for: This is an introductory topic for developers running HTTP-based workloads on Kubernetes who want to enable event-driven autoscaling.
6
+
who_is_this_for: This is an introductory topic for developers running HTTP workloads on Kubernetes who want to enable event-driven autoscaling with KEDA and Kedify.
11
7
12
8
learning_objectives:
13
-
- Install Kedify (KEDA build, HTTP Scaler, and Kedify Agent) via Helm
14
-
- Verify that the components are running in your cluster
9
+
- Install Kedify (KEDA build, HTTP Scaler, and Kedify Agent) with Helm
10
+
- Verify that Kedify and KEDA components are running in the cluster
15
11
- Deploy a sample HTTP application and test autoscaling behavior
16
12
17
13
prerequisites:
18
14
- A running Kubernetes cluster (local or cloud)
19
-
- kubectl and helm installed locally
20
-
- Access to the Kedify Service dashboard (https://dashboard.kedify.io/) to obtain Organization ID and API Key. You can log in or create an account if you don’t have one
15
+
- Kubectl and Helm installed locally
16
+
- Access to the Kedify Service dashboard to obtain your Organization ID and API key (sign up at [Kedify dashboard](https://dashboard.kedify.io/))
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/kedify-http-autoscaling/http-scaling.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ The [Kedify Proxy](https://docs.kedify.io/scalers/http-scaler/#kedify-proxy) gat
23
23
* Ingress: Public entry point configured using host `application.keda`
24
24
* ScaledObject: A Kedify HTTP scaler using `trafficAutowire: ingress`
25
25
26
-
## Step 1 — Configure the Ingress IP environment variable
26
+
## Configure the Ingress IP environment variable
27
27
28
28
Before testing the application, make sure the INGRESS_IP environment variable is set to your ingress controller’s external IP address or hostname.
29
29
@@ -39,11 +39,11 @@ This will store the correct IP or hostname in the $INGRESS_IP environment variab
39
39
If your ingress controller service uses a different name or namespace, update the command accordingly. For example, some installations use `nginx-ingress-controller` or place it in a different namespace.
40
40
{{% /notice %}}
41
41
42
-
## Step 2 — Deploy the application and configure Ingress
42
+
## Deploy the application and configure Ingress
43
43
44
44
Now you will deploy a simple HTTP server and expose it using an Ingress resource. The source code for this application is available on [GitHub](https://github.com/kedify/examples/tree/main/samples/http-server).
45
45
46
-
####Deploy the application
46
+
### Deploy the application
47
47
48
48
Run the following command to deploy your application:
49
49
@@ -120,7 +120,7 @@ Notes:
120
120
-`RESPONSE_DELAY` adds ~300ms latency per request, making scaling effects easier to see.
121
121
- The Ingress uses host `application.keda`. To access this app we will use your ingress controller’s IP with a `Host:` header (shown below).
122
122
123
-
####Verify the application is running correctly
123
+
## Verify the application is running correctly
124
124
125
125
You will now check if you have 1 replica of the application deployed and ready:
126
126
@@ -134,7 +134,7 @@ NAME READY UP-TO-DATE AVAILABLE AGE
134
134
application 1/1 1 1 3m44s
135
135
```
136
136
137
-
####Test the application
137
+
## Test the application
138
138
Once the application and Ingress are deployed, verify that everything is working correctly by sending a request to the exposed endpoint. Run the following command:
139
139
140
140
```bash
@@ -150,7 +150,7 @@ Content-Length: 301
150
150
Connection: keep-alive
151
151
```
152
152
153
-
## Step 3 — Enable autoscaling with Kedify
153
+
## Enable autoscaling with Kedify
154
154
155
155
The application is now running. Next, you will enable autoscaling so that it can scale dynamically between 0 and 10 replicas. Kedify ensures that no requests are dropped during scaling. Apply the `ScaledObject` by running the following command:
156
156
@@ -204,11 +204,11 @@ After applying, the `ScaledObject` will appear in the Kedify dashboard (https://
204
204
205
205

206
206
207
-
## Step 4 — Send traffic and observe scaling
207
+
## Send traffic and observe scaling
208
208
209
209
Since no traffic is currently being sent to the application, it will eventually scale down to zero replicas.
210
210
211
-
####Verify scale to zero
211
+
## Verify scale to zero
212
212
213
213
To confirm that the application has scaled down, run the following command and watch until the number of replicas reaches 0:
In this section you will learn how to install Kedify on your Kubernetes cluster using Helm. You will add the Kedify chart repo, install KEDA (Kedify build), the HTTP Scaler, and the Kedify Agent, then verify everything is running.
7
+
## Overview
8
+
In this section, you install Kedify on your Kubernetes cluster using Helm. You will add the Kedify chart repository, install KEDA (Kedify build), the HTTP Scaler, and the Kedify Agent, then verify the installation. This enables HTTP autoscaling on Kubernetes with KEDA and Kedify, including arm64 nodes.
8
9
9
-
For more details and all installation methods on Arm, you can refer to the [Kedify installation docs](https://docs.kedify.io/installation/helm#installation-on-arm)
10
+
For more information and other installation methods on Arm, see the [Kedify installation docs](https://docs.kedify.io/installation/helm#installation-on-arm).
10
11
11
12
## Before you begin
12
13
13
14
You will need:
14
15
15
-
- A running Kubernetes cluster (e.g., kind, minikube, EKS, GKE, AKS, etc.), hosted on any cloud provider or local environment.
16
-
-kubectl and helm installed and configured to communicate with your cluster
17
-
- A Kedify Service account (https://dashboard.kedify.io/) to obtain Organization ID and API Key — log in or create an account if you don’t have one
16
+
- A running Kubernetes cluster (for example, kind, minikube, EKS, GKE, or AKS), hosted on any cloud provider or local environment
17
+
-Kubectl and Helm installed and configured to communicate with your cluster
18
+
- A Kedify Service account to obtain your Organization ID and API key (sign up at the [Kedify dashboard](https://dashboard.kedify.io/))
18
19
19
-
## Installation
20
+
## Gather Kedify credentials
20
21
21
-
1) Get your Organization ID: In the Kedify dashboard (https://dashboard.kedify.io/) go to Organization -> Details and copy the ID.
22
-
23
-
2) Get your API key:
24
-
- If you already have a Kedify Agent deployed, you can retrieve it from the existing Secret:
22
+
From the Kedify dashboard, copy your Organization ID (**Organization** → **Details**) and retrieve or create an API key.
25
23
24
+
If you already have a Kedify Agent deployed, decode the key from the existing Secret:
26
25
```bash
27
26
kubectl get secret -n keda kedify-agent -o=jsonpath='{.data.apikey}'| base64 --decode
28
27
```
28
+
Otherwise, in the Kedify dashboard go to **Organization** → **API Keys**, select **Create Agent Key**, and copy the key.
29
29
30
-
Otherwise, in the Kedify dashboard (https://dashboard.kedify.io/) go to Organization -> API Keys, click Create Agent Key, and copy the key.
30
+
{{% notice Note %}}
31
+
The API key is shared across all Agent installations. If you regenerate it, update existing Agents and keep it secret.
32
+
{{% /notice %}}
31
33
32
-
Note: The API Key is shared across all your Agent installations. If you regenerate it, update existing Agent installs and keep it secret.
34
+
Optionally, export these values for reuse in the following commands:
35
+
```bash
36
+
export YOUR_ORG_ID="<your-org-id>"
37
+
export YOUR_API_KEY="<your-agent-api-key>"
38
+
export CLUSTER_NAME="my-arm-cluster"
39
+
```
33
40
34
-
## Helm repository
41
+
## Add the Kedify Helm repository
35
42
36
43
Add the Kedify Helm repository and update your local index:
Most providers like AWS EKS and Azure AKS automatically place pods on Arm nodes when you specify `nodeSelector` for `kubernetes.io/arch=arm64`. However, Google Kubernetes Engine (GKE) applies an explicit taint on Arm nodes, requiring matching`tolerations`.
51
+
Most providers (such as EKS and AKS) schedule pods on Arm nodes when you specify a `nodeSelector` for `kubernetes.io/arch=arm64`. On Google Kubernetes Engine (GKE), Arm nodes commonly have an explicit taint, so matching `tolerations` are required. To stay portable across providers, configure both `nodeSelector` and`tolerations`.
46
52
47
-
To ensure a portable deployment strategy across all cloud providers, it is recommended that you configure both `nodeSelector` and `tolerations` in your Helm values or CLI flags.
53
+
{{% notice Note %}}
54
+
For a portable deployment across cloud providers, configure both `nodeSelector` and `tolerations` in your Helm values or CLI flags.
55
+
{{% /notice %}}
48
56
49
-
Install each component into the keda namespace. Replace placeholders where noted.
50
-
51
-
1) Install Kedify build of KEDA:
57
+
## Install the Kedify build of KEDA
52
58
59
+
Run the following Helm command to install the Kedify build of KEDA into the `keda` namespace:
53
60
```bash
54
61
helm upgrade --install keda kedifykeda/keda \
55
62
--namespace keda \
@@ -62,8 +69,9 @@ helm upgrade --install keda kedifykeda/keda \
62
69
--set "tolerations[0].effect=NoSchedule"
63
70
```
64
71
65
-
2) Install Kedify HTTP Scaler:
72
+
##Install the Kedify HTTP Scaler
66
73
74
+
Install the Kedify HTTP Scaler with matching node selector and tolerations:
0 commit comments