Skip to content

Commit cdef234

Browse files
Updates
1 parent 6af5ffd commit cdef234

3 files changed

Lines changed: 52 additions & 50 deletions

File tree

content/learning-paths/servers-and-cloud-computing/kedify-http-autoscaling/_index.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
---
2-
title: Autoscaling HTTP applications on Kubernetes
2+
title: Autoscale HTTP applications on Kubernetes with KEDA and Kedify
33

4-
draft: true
5-
cascade:
6-
draft: true
7-
84
minutes_to_complete: 45
95

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.
117

128
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
1511
- Deploy a sample HTTP application and test autoscaling behavior
1612

1713
prerequisites:
1814
- 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/))
2117

2218
author: Zbynek Roubalik
2319

content/learning-paths/servers-and-cloud-computing/kedify-http-autoscaling/http-scaling.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The [Kedify Proxy](https://docs.kedify.io/scalers/http-scaler/#kedify-proxy) gat
2323
* Ingress: Public entry point configured using host `application.keda`
2424
* ScaledObject: A Kedify HTTP scaler using `trafficAutowire: ingress`
2525

26-
## Step 1 — Configure the Ingress IP environment variable
26+
## Configure the Ingress IP environment variable
2727

2828
Before testing the application, make sure the INGRESS_IP environment variable is set to your ingress controller’s external IP address or hostname.
2929

@@ -39,11 +39,11 @@ This will store the correct IP or hostname in the $INGRESS_IP environment variab
3939
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.
4040
{{% /notice %}}
4141

42-
## Step 2 — Deploy the application and configure Ingress
42+
## Deploy the application and configure Ingress
4343

4444
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).
4545

46-
#### Deploy the application
46+
### Deploy the application
4747

4848
Run the following command to deploy your application:
4949

@@ -120,7 +120,7 @@ Notes:
120120
- `RESPONSE_DELAY` adds ~300ms latency per request, making scaling effects easier to see.
121121
- The Ingress uses host `application.keda`. To access this app we will use your ingress controller’s IP with a `Host:` header (shown below).
122122

123-
#### Verify the application is running correctly
123+
## Verify the application is running correctly
124124

125125
You will now check if you have 1 replica of the application deployed and ready:
126126

@@ -134,7 +134,7 @@ NAME READY UP-TO-DATE AVAILABLE AGE
134134
application 1/1 1 1 3m44s
135135
```
136136

137-
#### Test the application
137+
## Test the application
138138
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:
139139

140140
```bash
@@ -150,7 +150,7 @@ Content-Length: 301
150150
Connection: keep-alive
151151
```
152152

153-
## Step 3 — Enable autoscaling with Kedify
153+
## Enable autoscaling with Kedify
154154

155155
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:
156156

@@ -204,11 +204,11 @@ After applying, the `ScaledObject` will appear in the Kedify dashboard (https://
204204

205205
![Kedify Dashboard With ScaledObject](images/scaledobject.png)
206206

207-
## Step 4 — Send traffic and observe scaling
207+
## Send traffic and observe scaling
208208

209209
Since no traffic is currently being sent to the application, it will eventually scale down to zero replicas.
210210

211-
#### Verify scale to zero
211+
## Verify scale to zero
212212

213213
To confirm that the application has scaled down, run the following command and watch until the number of replicas reaches 0:
214214

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,62 @@
11
---
2-
title: "Install Kedify via Helm"
2+
title: "Install Kedify using Helm"
33
weight: 2
44
layout: "learningpathall"
55
---
66

7-
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.
89

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).
1011

1112
## Before you begin
1213

1314
You will need:
1415

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/))
1819

19-
## Installation
20+
## Gather Kedify credentials
2021

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.
2523

24+
If you already have a Kedify Agent deployed, decode the key from the existing Secret:
2625
```bash
2726
kubectl get secret -n keda kedify-agent -o=jsonpath='{.data.apikey}' | base64 --decode
2827
```
28+
Otherwise, in the Kedify dashboard go to **Organization****API Keys**, select **Create Agent Key**, and copy the key.
2929

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 %}}
3133

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+
```
3340

34-
## Helm repository
41+
## Add the Kedify Helm repository
3542

3643
Add the Kedify Helm repository and update your local index:
37-
3844
```bash
3945
helm repo add kedifykeda https://kedify.github.io/charts
4046
helm repo update
4147
```
4248

43-
## Helm installation
49+
## Install components with Helm
4450

45-
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`.
4652

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 %}}
4856

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
5258

59+
Run the following Helm command to install the Kedify build of KEDA into the `keda` namespace:
5360
```bash
5461
helm upgrade --install keda kedifykeda/keda \
5562
--namespace keda \
@@ -62,8 +69,9 @@ helm upgrade --install keda kedifykeda/keda \
6269
--set "tolerations[0].effect=NoSchedule"
6370
```
6471

65-
2) Install Kedify HTTP Scaler:
72+
## Install the Kedify HTTP Scaler
6673

74+
Install the Kedify HTTP Scaler with matching node selector and tolerations:
6775
```bash
6876
helm upgrade --install keda-add-ons-http kedifykeda/keda-add-ons-http \
6977
--namespace keda \
@@ -80,8 +88,9 @@ helm upgrade --install keda-add-ons-http kedifykeda/keda-add-ons-http \
8088
--set "scaler.tolerations[0].effect=NoSchedule"
8189
```
8290

83-
3) Install Kedify Agent (edit clusterName, orgId, apiKey):
91+
## Install the Kedify Agent
8492

93+
Edit the cluster name, Organization ID, and API key (or rely on the exported environment variables), then run:
8594
```bash
8695
helm upgrade --install kedify-agent kedifykeda/kedify-agent \
8796
--namespace keda \
@@ -95,22 +104,19 @@ helm upgrade --install kedify-agent kedifykeda/kedify-agent \
95104
--set "agent.kedifyProxy.globalValues.tolerations[0].operator=Equal" \
96105
--set "agent.kedifyProxy.globalValues.tolerations[0].value=arm64" \
97106
--set "agent.kedifyProxy.globalValues.tolerations[0].effect=NoSchedule" \
98-
\
99-
--set clusterName="my-arm-cluster" \
100-
--set agent.orgId="$YOUR_ORG_ID" \
101-
--set agent.apiKey="$YOUR_API_KEY"
107+
--set clusterName="${CLUSTER_NAME:-my-arm-cluster}" \
108+
--set agent.orgId="${YOUR_ORG_ID}" \
109+
--set agent.apiKey="${YOUR_API_KEY}"
102110
```
103111

104112
## Verify installation
105113

106-
You are now ready to verify your installation:
107-
114+
List pods in the `keda` namespace to confirm all components are running:
108115
```bash
109116
kubectl get pods -n keda
110117
```
111118

112-
Expected output should look like (names may differ):
113-
119+
Expected output (names might vary):
114120
```output
115121
NAME READY STATUS RESTARTS AGE
116122
keda-add-ons-http-external-scaler-xxxxx 1/1 Running 0 1m
@@ -121,4 +127,4 @@ keda-operator-metrics-apiserver-xxxxx 1/1 Running 0 1m
121127
kedify-agent-xxxxx 1/1 Running 0 1m
122128
```
123129

124-
Proceed to the next section to learn how to install an Ingress controller before deploying a sample HTTP app and testing autoscaling.
130+
Proceed to the next section to install an Ingress controller, deploy a sample HTTP app, and test autoscaling.

0 commit comments

Comments
 (0)