Installera tillägget Kubernetes Event-driven Autoscaling (KEDA) med hjälp av en ARM-mall
Den här artikeln visar hur du distribuerar tillägget Kubernetes Händelsedriven autoskalning (KEDA) till Azure Kubernetes Service (AKS) med hjälp av en ARM-mall.
Viktigt!
Kubernetes-klustret avgör vilken KEDA-version som ska installeras i AKS-klustret. Information om vilken KEDA-version som mappas till varje AKS-version finns i kolumnen AKS-hanterade tillägg i kubernetes-komponentversionstabellen.
För GA Kubernetes-versioner erbjuder AKS fullt stöd för motsvarande KEDA-delversion i tabellen. Förhandsversioner av Kubernetes och den senaste KEDA-korrigeringen omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
Kommentar
KEDA version 2.15 introducerar en icke-bakåtkompatibel ändring som tar bort poddidentitetsstöd. Vi rekommenderar att du flyttar över till arbetsbelastningsidentiteten för din autentisering om du använder poddidentitet. Även om det keda-hanterade tillägget för närvarande inte kör KEDA version 2.15, börjar det köra det i AKS-förhandsversionen 1.31.
Mer information om hur du på ett säkert sätt skalar dina program med arbetsbelastningsidentitet finns i vår självstudie. Om du vill se KEDA:s policy för icke-bakåtkompatibla ändringar/utfasning läser du deras officiella dokumentation.
Innan du börjar
- Du behöver en Azure-prenumerationen. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Du behöver Azure CLI installerat.
- Den här artikeln förutsätter att du har en befintlig Azure-resursgrupp. Om du inte har någon befintlig resursgrupp kan du skapa en med kommandot
az group create
. - Se till att du har konfigurerat brandväggsregler för att tillåta åtkomst till Kubernetes API-servern. Mer information finns i Utgående nätverk och FQDN-regler för AKS-kluster (Azure Kubernetes Service).
- Skapa ett SSH-nyckelpar.
Kommentar
Om du använder Microsoft Entra-arbetsbelastnings-ID och aktiverar KEDA före arbetsbelastnings-ID måste du starta om KEDA-operatorpoddarna så att rätt miljövariabler kan matas in:
Starta om poddarna genom att köra
kubectl rollout restart deployment keda-operator -n kube-system
.Hämta KEDA-operatorpoddar med hjälp av
kubectl get pod -n kube-system
och hitta poddar som börjar medkeda-operator
.Kontrollera att miljövariablerna har injicerats genom att köra
kubectl describe pod <keda-operator-pod> -n kube-system
. UnderEnvironment
bör du se värden förAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
ochAZURE_AUTHORITY_HOST
.
Skapa ett SSH-nyckelpar
Navigera till Azure Cloud Shell.
Skapa ett SSH-nyckelpar med kommandot
az sshkey create
.az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
Aktivera KEDA-tillägget med en ARM-mall
Distribuera ARM-mallen för ett AKS-kluster.
Välj Redigera mall.
Aktivera KEDA-tillägget genom att
workloadAutoScalerProfile
ange fältet i ARM-mallen, enligt följande exempel:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
Välj Spara.
Uppdatera de värden som krävs för ARM-mallen:
- Prenumeration: Välj den Azure-prenumeration som ska användas för distributionen.
- Resursgrupp: Välj den resursgrupp som ska användas för distributionen.
- Region: Välj den region som ska användas för distributionen.
- Dns-prefix: Ange ett unikt DNS-namn som ska användas för klustret.
- Användarnamn för Linux-administratör: Ange ett användarnamn för klustret.
- Offentlig SSH-nyckelkälla: Välj Använd befintlig nyckel som lagras i Azure.
- Lagra nycklar: Välj det nyckelpar som du skapade tidigare i artikeln.
Välj Granska + skapa>Skapa.
Ansluta till ditt AKS-kluster
Om du vill ansluta till Kubernetes-klustret från din lokala enhet använder du kubectl, Kubernetes-kommandoradsklienten.
Om du använder Azure Cloud Shell är kubectl
redan installerat. Du kan också installera den lokalt med hjälp av az aks install-cli
kommandot .
- Konfigurera
kubectl
för att ansluta till kubernetes-klustret med kommandot az aks get-credentials . I följande exempel hämtas autentiseringsuppgifter för AKS-klustret med namnet MyAKSCluster i MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
Exempel på distribution
Följande kodfragment är en exempeldistribution som skapar ett kluster med KEDA aktiverat med en enda nodpool bestående av tre DS2_v5
noder.
{
"$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"
}
}
]
}
Börja skala appar med KEDA
Du kan autoskala dina appar med KEDA med hjälp av anpassade resursdefinitioner (CRD). Mer information finns i KEDA-dokumentationen.
Ta bort resurser
Ta bort resursgruppen och alla relaterade resurser med kommandot
az group delete
.az group delete --name <resource-group-name>
Nästa steg
Den här artikeln visar hur du installerar KEDA-tillägget i ett AKS-kluster och sedan kontrollerar att det är installerat och körs. Med KEDA-tillägget installerat i klustret kan du distribuera ett exempelprogram för att börja skala appar.
Information om KEDA-felsökning finns i Felsöka tillägget Kubernetes Händelsedriven autoskalning (KEDA).
Mer information finns i de överordnade KEDA-dokumenten.
Azure Kubernetes Service