Skip to content

Commit f790160

Browse files
authored
Merge pull request #239162 from Nickomang/aks-keda-ga
KEDA GA
2 parents 06528ac + 9a49a7b commit f790160

File tree

7 files changed

+187
-140
lines changed

7 files changed

+187
-140
lines changed
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
---
22
author: tomkerkhove
3-
43
ms.service: azure-kubernetes-service
54
ms.topic: include
6-
ms.date: 05/24/2022
5+
ms.date: 11/02/2023
76
ms.author: tomkerkhove
87
---
98

109
> [!IMPORTANT]
11-
> The KEDA add-on installs version *2.7.0* of KEDA on your cluster.
12-
>
13-
> Due to [KEDA's Kubernetes Compatibility policy](https://keda.sh/docs/latest/operate/cluster/#kubernetes-compatibility), the managed KEDA addon is will only be supported in Kubernetes versions <= 1.25 when generally available. Please follow the [release notes](https://github.com/Azure/AKS/releases) to be notified for additional Kubernetes version support.
10+
> Your cluster Kubernetes version determines what KEDA version will be installed on your AKS cluster. To see which KEDA version maps to each AKS version, see the **AKS managed add-ons** column of the [Kubernetes component version table](/azure/aks/supported-kubernetes-versions#aks-components-breaking-changes-by-version).
11+
>
12+
> For GA Kubernetes versions, AKS offers full support of the corresponding KEDA minor version in the table. Kubernetes preview versions and the latest KEDA patch 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:
13+
> - [AKS support policies](/azure/aks/support-policies)
14+
> - [Azure support FAQ](https://azure.microsoft.com/support/legal/faq/)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
author: nickomang
3+
ms.service: azure-kubernetes-service
4+
ms.topic: include
5+
ms.date: 11/02/2023
6+
ms.author: nickoman
7+
---
8+
9+
> [!NOTE]
10+
> If you're using [Microsoft Entra Workload ID](/azure/aks/workload-identity-overview) and you enable KEDA before Workload ID, you need to restart the KEDA operator pods so the proper environment variables can be injected:
11+
>
12+
> 1. Restart the pods by running `kubectl rollout restart deployment keda-operator -n kube-system`.
13+
>
14+
> 1. Obtain KEDA operator pods using `kubectl get pod -n kube-system` and finding pods that begin with `keda-operator`.
15+
>
16+
> 1. Verify successful injection of the environment variables by running `kubectl describe pod <keda-operator-pod> -n kube-system`.
17+
> Under `Environment`, you should see values for `AZURE_TENANT_ID`, `AZURE_FEDERATED_TOKEN_FILE`, and `AZURE_AUTHORITY_HOST`.

articles/aks/keda-about.md

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
---
2-
title: Kubernetes Event-driven Autoscaling (KEDA) (Preview)
2+
title: Kubernetes Event-driven Autoscaling (KEDA)
33
description: Simplified application autoscaling with Kubernetes Event-driven Autoscaling (KEDA) add-on.
44
author: tomkerkhove
55
ms.topic: article
6-
ms.date: 06/06/2023
6+
ms.date: 08/08/2023
77
ms.author: tomkerkhove
88
---
99

10-
# Simplified application autoscaling with Kubernetes Event-driven Autoscaling (KEDA) add-on (Preview)
10+
# Simplified application autoscaling with Kubernetes Event-driven Autoscaling (KEDA) add-on
1111

1212
Kubernetes Event-driven Autoscaling (KEDA) is a single-purpose and lightweight component that strives to make application autoscaling simple and is a CNCF Graduate project.
1313

1414
It applies event-driven autoscaling to scale your application to meet demand in a sustainable and cost-efficient manner with scale-to-zero.
1515

16-
The KEDA add-on makes it even easier by deploying a managed KEDA installation, providing you with [a rich catalog of 50+ KEDA scalers][keda-scalers] that you can scale your applications with on your Azure Kubernetes Services (AKS) cluster.
17-
18-
[!INCLUDE [preview features callout](./includes/preview/preview-callout.md)]
16+
The KEDA add-on makes it even easier by deploying a managed KEDA installation, providing you with [a rich catalog of Azure KEDA scalers][keda-scalers] that you can scale your applications with on your Azure Kubernetes Services (AKS) cluster.
1917

2018
## Architecture
2119

@@ -28,7 +26,7 @@ The KEDA add-on makes it even easier by deploying a managed KEDA installation, p
2826

2927
Learn more about how KEDA works in the [official KEDA documentation][keda-architecture].
3028

31-
## Installation and version
29+
## Installation
3230

3331
KEDA can be added to your Azure Kubernetes Service (AKS) cluster by enabling the KEDA add-on using an [ARM template][keda-arm] or [Azure CLI][keda-cli].
3432

@@ -39,11 +37,15 @@ The KEDA add-on provides a fully supported installation of KEDA that is integrat
3937
KEDA provides the following capabilities and features:
4038

4139
- Build sustainable and cost-efficient applications with scale-to-zero
42-
- Scale application workloads to meet demand using [a rich catalog of 50+ KEDA scalers][keda-scalers]
40+
- Scale application workloads to meet demand using [a rich catalog of Azure KEDA scalers][keda-scalers]
4341
- Autoscale applications with `ScaledObjects`, such as Deployments, StatefulSets or any custom resource that defines `/scale` subresource
4442
- Autoscale job-like workloads with `ScaledJobs`
4543
- Use production-grade security by decoupling autoscaling authentication from workloads
4644
- Bring-your-own external scaler to use tailor-made autoscaling decisions
45+
- Integrate with [Microsoft Entra Workload ID][workload-identity] for authentication
46+
47+
> [!NOTE]
48+
> If you plan to use workload identity, [enable the workload identity add-on][workload-identity-deploy] before enabling the KEDA add-on.
4749
4850
## Add-on limitations
4951

@@ -53,22 +55,36 @@ The KEDA AKS add-on has the following limitations:
5355
* KEDA's [external scaler for Azure Cosmos DB][keda-cosmos-db-scaler] to scale based on Azure Cosmos DB change feed isn't installed with the extension, but can be deployed separately.
5456
* Only one metric server is allowed in the Kubernetes cluster. Because of that the KEDA add-on should be the only metrics server inside the cluster.
5557
* Multiple KEDA installations aren't supported
56-
* Managed identity isn't supported.
5758

5859
For general KEDA questions, we recommend [visiting the FAQ overview][keda-faq].
5960

61+
[!INCLUDE [Current version callout](./includes/keda/keda-workload-identity-callout.md)]
62+
63+
## Supported Kubernetes and KEDA versions
64+
65+
Your cluster Kubernetes version determines what KEDA version will be installed on your AKS cluster. To see which KEDA version maps to each AKS version, see the **AKS managed add-ons** column of the [Kubernetes component version table](./supported-kubernetes-versions.md#aks-components-breaking-changes-by-version).
66+
67+
For GA Kubernetes versions, AKS offers full support of the corresponding KEDA minor version in the table. Kubernetes preview versions and the latest KEDA patch 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:
68+
69+
- [AKS support policies][support-policies]
70+
- [Azure support FAQ][azure-support-faq]
71+
6072
## Next steps
6173

6274
* [Enable the KEDA add-on with an ARM template][keda-arm]
6375
* [Enable the KEDA add-on with the Azure CLI][keda-cli]
6476
* [Troubleshoot KEDA add-on problems][keda-troubleshoot]
6577
* [Autoscale a .NET Core worker processing Azure Service Bus Queue messages][keda-sample]
78+
* [View the upstream KEDA docs][keda]
6679

6780
<!-- LINKS - internal -->
6881
[keda-azure-cli]: keda-deploy-addon-az-cli.md
6982
[keda-cli]: keda-deploy-add-on-cli.md
7083
[keda-arm]: keda-deploy-add-on-arm.md
7184
[keda-troubleshoot]: /troubleshoot/azure/azure-kubernetes/troubleshoot-kubernetes-event-driven-autoscaling-add-on?context=/azure/aks/context/aks-context
85+
[workload-identity]: ./workload-identity-overview.md
86+
[workload-identity-deploy]: ./workload-identity-deploy-cluster.md
87+
[support-policies]: ./support-policies.md
7288

7389
<!-- LINKS - external -->
7490
[keda]: https://keda.sh/
@@ -78,3 +94,4 @@ For general KEDA questions, we recommend [visiting the FAQ overview][keda-faq].
7894
[keda-scalers]: https://keda.sh/docs/scalers/
7995
[keda-http-add-on]: https://github.com/kedacore/http-add-on
8096
[keda-cosmos-db-scaler]: https://github.com/kedacore/external-scaler-azure-cosmos-db
97+
[azure-support-faq]: https://azure.microsoft.com/support/legal/faq/

articles/aks/keda-deploy-add-on-arm.md

Lines changed: 66 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Install the Kubernetes Event-driven Autoscaling (KEDA) add-on using an ARM template
33
description: Use an ARM template to deploy the Kubernetes Event-driven Autoscaling (KEDA) add-on to Azure Kubernetes Service (AKS).
4-
author: jahabibi
4+
author: nickomang
55
ms.topic: article
66
ms.custom: devx-track-azurecli, devx-track-arm-template
77
ms.date: 09/26/2023
8-
ms.author: jahabibi
8+
ms.author: nickoman
99
---
1010

1111
# Install the Kubernetes Event-driven Autoscaling (KEDA) add-on using an ARM template
@@ -20,49 +20,11 @@ This article shows you how to deploy the Kubernetes Event-driven Autoscaling (KE
2020
- You need the [Azure CLI installed](/cli/azure/install-azure-cli).
2121
- This article assumes you have an existing Azure resource group. If you don't have an existing resource group, you can create one using the [`az group create`][az-group-create] command.
2222
- Ensure you have firewall rules configured to allow access to the Kubernetes API server. For more information, see [Outbound network and FQDN rules for Azure Kubernetes Service (AKS) clusters][aks-firewall-requirements].
23-
- [Install the `aks-preview` Azure CLI extension](#install-the-aks-preview-azure-cli-extension).
24-
- [Register the `AKS-KedaPreview` feature flag](#register-the-aks-kedapreview-feature-flag).
2523
- [Create an SSH key pair](#create-an-ssh-key-pair).
2624

27-
### Install the `aks-preview` Azure CLI extension
25+
[!INCLUDE [KEDA workload ID callout](./includes/keda/keda-workload-identity-callout.md)]
2826

29-
[!INCLUDE [preview features callout](includes/preview/preview-callout.md)]
30-
31-
1. Install the `aks-preview` extension using the [`az extension add`][az-extension-add] command.
32-
33-
```azurecli-interactive
34-
az extension add --name aks-preview
35-
```
36-
37-
2. Update to the latest version of the `aks-preview` extension using the [`az extension update`][az-extension-update] command.
38-
39-
```azurecli-interactive
40-
az extension update --name aks-preview
41-
```
42-
43-
### Register the `AKS-KedaPreview` feature flag
44-
45-
1. Register the `AKS-KedaPreview` feature flag using the [`az feature register`][az-feature-register] command.
46-
47-
```azurecli-interactive
48-
az feature register --namespace "Microsoft.ContainerService" --name "AKS-KedaPreview"
49-
```
50-
51-
It takes a few minutes for the status to show *Registered*.
52-
53-
2. Verify the registration status using the [`az feature show`][az-feature-show] command.
54-
55-
```azurecli-interactive
56-
az feature show --namespace "Microsoft.ContainerService" --name "AKS-KedaPreview"
57-
```
58-
59-
3. When the status reflects *Registered*, refresh the registration of the *Microsoft.ContainerService* resource provider using the [`az provider register`][az-provider-register] command.
60-
61-
```azurecli-interactive
62-
az provider register --namespace Microsoft.ContainerService
63-
```
64-
65-
### Create an SSH key pair
27+
## Create an SSH key pair
6628

6729
1. Navigate to the [Azure Cloud Shell](https://shell.azure.com/).
6830
2. Create an SSH key pair using the [`az sshkey create`][az-sshkey-create] command.
@@ -104,11 +66,65 @@ To connect to the Kubernetes cluster from your local device, you use [kubectl][k
10466
10567
If you use the Azure Cloud Shell, `kubectl` is already installed. You can also install it locally using the [`az aks install-cli`][az-aks-install-cli] command.
10668
107-
- Configure `kubectl` to connect to your Kubernetes cluster using the [`az aks get-credentials`][az-aks-get-credentials] command.
108-
109-
```azurecli-interactive
110-
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
111-
```
69+
- Configure `kubectl` to connect to your Kubernetes cluster, use the [az aks get-credentials][az-aks-get-credentials] command. The following example gets credentials for the AKS cluster named *MyAKSCluster* in the *MyResourceGroup*:
70+
71+
```azurecli
72+
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
73+
```
74+
75+
## Example deployment
76+
77+
The following snippet is a sample deployment that creates a cluster with KEDA enabled with a single node pool comprised of three `DS2_v5` nodes.
78+
79+
```json
80+
{
81+
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
82+
"contentVersion": "1.0.0.0",
83+
"resources": [
84+
{
85+
"apiVersion": "2023-03-01",
86+
"dependsOn": [],
87+
"type": "Microsoft.ContainerService/managedClusters",
88+
"location": "westcentralus",
89+
"name": "myAKSCluster",
90+
"properties": {
91+
"kubernetesVersion": "1.27",
92+
"enableRBAC": true,
93+
"dnsPrefix": "myAKSCluster",
94+
"agentPoolProfiles": [
95+
{
96+
"name": "agentpool",
97+
"osDiskSizeGB": 200,
98+
"count": 3,
99+
"enableAutoScaling": false,
100+
"vmSize": "Standard_D2S_v5",
101+
"osType": "Linux",
102+
"storageProfile": "ManagedDisks",
103+
"type": "VirtualMachineScaleSets",
104+
"mode": "System",
105+
"maxPods": 110,
106+
"availabilityZones": [],
107+
"nodeTaints": [],
108+
"enableNodePublicIP": false
109+
}
110+
],
111+
"networkProfile": {
112+
"loadBalancerSku": "standard",
113+
"networkPlugin": "kubenet"
114+
},
115+
"workloadAutoScalerProfile": {
116+
"keda": {
117+
"enabled": true
118+
}
119+
}
120+
},
121+
"identity": {
122+
"type": "SystemAssigned"
123+
}
124+
}
125+
]
126+
}
127+
```
112128

113129
## Start scaling apps with KEDA
114130

@@ -128,6 +144,8 @@ This article showed you how to install the KEDA add-on on an AKS cluster, and th
128144
129145
For information on KEDA troubleshooting, see [Troubleshoot the Kubernetes Event-driven Autoscaling (KEDA) add-on][keda-troubleshoot].
130146
147+
To learn more, view the [upstream KEDA docs][keda].
148+
131149
<!-- LINKS - internal -->
132150
[az-group-delete]: /cli/azure/group#az-group-delete
133151
[keda-troubleshoot]: /troubleshoot/azure/azure-kubernetes/troubleshoot-kubernetes-event-driven-autoscaling-add-on?context=/azure/aks/context/aks-context
@@ -146,3 +164,4 @@ For information on KEDA troubleshooting, see [Troubleshoot the Kubernetes Event-
146164
[kubectl]: https://kubernetes.io/docs/reference/kubectl/
147165
[keda-scalers]: https://keda.sh/docs/scalers/
148166
[keda-sample]: https://github.com/kedacore/sample-dotnet-worker-servicebus-queue
167+
[keda]: https://keda.sh/docs/2.12/

0 commit comments

Comments
 (0)