De Keda-invoegtoepassing (Kubernetes Event-driven Autoscaling) installeren met behulp van een ARM-sjabloon
In dit artikel leest u hoe u de invoegtoepassing Kubernetes Event Driven AutoScaling (KEDA) implementeert in Azure Kubernetes Service (AKS) met behulp van een ARM-sjabloon.
Belangrijk
De Kubernetes-versie van uw cluster bepaalt welke KEDA-versie op uw AKS-cluster wordt geïnstalleerd. Als u wilt zien welke KEDA-versie aan elke AKS-versie wordt toegewezen, raadpleegt u de kolom met door AKS beheerde invoegtoepassingen van de versietabel van het Kubernetes-onderdeel.
Voor GA Kubernetes-versies biedt AKS volledige ondersteuning voor de bijbehorende secundaire KEDA-versie in de tabel. Kubernetes Preview-versies en de nieuwste KEDA-patch worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Notitie
KEDA versie 2.15 introduceert een belangrijke wijziging waarmee ondersteuning voor pod-identiteiten wordt verwijderd. We raden u aan over te stappen naar de workloadidentiteit voor uw verificatie als u pod-identiteit gebruikt. Hoewel de door KEDA beheerde invoegtoepassing momenteel niet wordt uitgevoerd op KEDA versie 2.15, wordt deze uitgevoerd in de AKS preview-versie 1.31.
Lees onze zelfstudie voor meer informatie over het veilig schalen van uw toepassingen met workloadidentiteit. Lees de officiële documentatie van KEDA om het belangrijke wijzigings-/afschaffingsbeleid van KEDA weer te geven.
Voordat u begint
- U hebt een Azure-abonnement nodig. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- U moet de Azure CLI hebben geïnstalleerd.
- In dit artikel wordt ervan uitgegaan dat u een bestaande Azure-resourcegroep hebt. Als u geen bestaande resourcegroep hebt, kunt u er een maken met behulp van de
az group create
opdracht. - Zorg ervoor dat u firewallregels hebt geconfigureerd om toegang tot de Kubernetes-API-server toe te staan. Zie Regels voor uitgaand netwerk en FQDN voor AKS-clusters (Azure Kubernetes Service) voor meer informatie.
- Maak een SSH-sleutelpaar.
Notitie
Als u Microsoft Entra Workload-ID gebruikt en KEDA inschakelt voordat Workload-ID, moet u de KEDA-operatorpods opnieuw starten, zodat de juiste omgevingsvariabelen kunnen worden geïnjecteerd:
Start de pods opnieuw door uit te voeren
kubectl rollout restart deployment keda-operator -n kube-system
.Haal KEDA-operatorpods op met behulp van
kubectl get pod -n kube-system
pods en zoek pods die beginnen metkeda-operator
.Controleer of de omgevingsvariabelen zijn geïnjecteerd door uit te voeren
kubectl describe pod <keda-operator-pod> -n kube-system
. OnderEnvironment
ziet u waarden voorAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
enAZURE_AUTHORITY_HOST
.
Een SSH-sleutelpaar maken
Navigeer naar de Azure Cloud Shell.
Maak een SSH-sleutelpaar met behulp van de
az sshkey create
opdracht.az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
De KEDA-invoegtoepassing inschakelen met een ARM-sjabloon
Implementeer de ARM-sjabloon voor een AKS-cluster.
Selecteer Sjabloon bewerken.
Schakel de KEDA-invoegtoepassing in door het
workloadAutoScalerProfile
veld in de ARM-sjabloon op te geven, zoals wordt weergegeven in het volgende voorbeeld:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
Selecteer Opslaan.
Werk de vereiste waarden voor de ARM-sjabloon bij:
- Abonnement: Selecteer het Azure-abonnement dat u wilt gebruiken voor de implementatie.
- Resourcegroep: Selecteer de resourcegroep die u wilt gebruiken voor de implementatie.
- Regio: Selecteer de regio die u wilt gebruiken voor de implementatie.
- Dns-voorvoegsel: voer een unieke DNS-naam in die moet worden gebruikt voor het cluster.
- Gebruikersnaam voor Linux-beheerder: voer een gebruikersnaam in voor het cluster.
- Openbare SSH-sleutelbron: selecteer Bestaande sleutel gebruiken die is opgeslagen in Azure.
- Sleutels opslaan: selecteer het sleutelpaar dat u eerder in het artikel hebt gemaakt.
Selecteer Beoordelen en maken>Maken.
Verbinding maken met uw AKS-cluster
Als u vanaf uw lokale apparaat verbinding wilt maken met het Kubernetes-cluster, gebruikt u kubectl, de Kubernetes-opdrachtregelclient.
Als u Azure Cloud Shell gebruikt, is kubectl
al geïnstalleerd. U kunt deze ook lokaal installeren met behulp van de az aks install-cli
opdracht.
- Configureer
kubectl
om verbinding te maken met uw Kubernetes-cluster met de opdracht az aks get-credentials . In het volgende voorbeeld worden referenties opgehaald voor het AKS-cluster met de naam MyAKSCluster in myResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
Voorbeeldimplementatie
Het volgende codefragment is een voorbeeldimplementatie waarmee een cluster wordt gemaakt waarvoor KEDA is ingeschakeld met één knooppuntgroep die uit drie DS2_v5
knooppunten bestaat.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"apiVersion": "2023-03-01",
"dependsOn": [],
"type": "Microsoft.ContainerService/managedClusters",
"location": "westcentralus",
"name": "myAKSCluster",
"properties": {
"kubernetesVersion": "1.27",
"enableRBAC": true,
"dnsPrefix": "myAKSCluster",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": 200,
"count": 3,
"enableAutoScaling": false,
"vmSize": "Standard_D2S_v5",
"osType": "Linux",
"type": "VirtualMachineScaleSets",
"mode": "System",
"maxPods": 110,
"availabilityZones": [],
"nodeTaints": [],
"enableNodePublicIP": false
}
],
"networkProfile": {
"loadBalancerSku": "standard",
"networkPlugin": "kubenet"
},
"workloadAutoScalerProfile": {
"keda": {
"enabled": true
}
}
},
"identity": {
"type": "SystemAssigned"
}
}
]
}
Apps schalen met KEDA
U kunt uw apps automatisch schalen met KEDA met behulp van aangepaste resourcedefinities (CRD's). Zie de KEDA-documentatie voor meer informatie.
Resources verwijderen
Verwijder de resourcegroep en alle gerelateerde resources met behulp van de
az group delete
opdracht.az group delete --name <resource-group-name>
Volgende stappen
In dit artikel hebt u gezien hoe u de KEDA-invoegtoepassing installeert op een AKS-cluster en vervolgens controleert of deze is geïnstalleerd en wordt uitgevoerd. Als de KEDA-invoegtoepassing op uw cluster is geïnstalleerd, kunt u een voorbeeldtoepassing implementeren om apps te schalen.
Zie De invoegtoepassing Kubernetes Event-driven Autoscaling (KEDA) oplossen voor meer informatie over het oplossen van problemen met KEDA.
Bekijk de upstream KEDA-documenten voor meer informatie.
Azure Kubernetes Service