Installare il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) usando un modello di ARM
Questo articolo illustra come distribuire il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) nel servizio Azure Kubernetes (AKS) usando un modello di ARM.
Importante
La tua versione di Kubernetes del cluster determina quale versione KEDA verrà installata nel tuo cluster AKS. Per vedere quale versione di KEDA si riferisce a ognuna delle versioni di AKA, vedi la colonna dei componenti aggiuntivi gestiti da AKS della tabella delle versioni del componente Kubernetes.
Per le versioni di Kubernetes GA, AKS offre il supporto completo della relativa versione secondaria KEDA nella tabella. Le versioni in anteprima di Kubernetes e la patch KEDA più recente sono parzialmente coperte dal supporto clienti con il massimo impegno. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Nota
KEDA versione 2.15 introduce una modifica che causa un'interruzione che rimuove il supporto dell'identità dei pod. Se si usa l'identità del pod, è consigliabile passare all'identità del carico di lavoro per l'autenticazione. Anche se il componente aggiuntivo gestito KEDA attualmente non esegue KEDA versione 2.15, inizierà a eseguirlo nell'anteprima del servizio Azure Kubernetes versione 1.31.
Per altre informazioni su come ridimensionare in modo sicuro le applicazioni con l'identità del carico di lavoro, vedere l'esercitazione. Per visualizzare i criteri delle modifiche che causano un'interruzione o delle deprecazioni di KEDA, leggere la documentazione ufficiale.
Operazioni preliminari
- È necessaria una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.
- È necessario che l'interfaccia della riga di comando di Azure sia installata.
- Questo articolo presuppone che tu disponga di un gruppo di risorse di Azure esistente. Se non disponi di un gruppo di risorse esistente, puoi crearne uno usando il comando
az group create
. - Assicurati che le regole del firewall siano configurate per consentire l'accesso al server API Kubernetes. Per ulteriori informazioni, vedi Regole di rete e FQDN (nome di dominio completo) in uscita per i cluster del servizio Azure Kubernetes.
- creare una coppia di chiavi SSH.
Nota
Se stai usando l'ID del carico di lavoro Microsoft Entra e abiliti KEDA prima dell'ID carico di lavoro, devi riavviare i pod dell'operatore KEDA in modo da poter inserire le variabili di ambiente appropriate:
Riavvia i pod eseguendo
kubectl rollout restart deployment keda-operator -n kube-system
.Ottieni i pod dell'operatore KEDA usando
kubectl get pod -n kube-system
e cercando i pod che iniziano conkeda-operator
.Verifica l'esito positivo dell'inserimento delle variabili di ambiente eseguendo
kubectl describe pod <keda-operator-pod> -n kube-system
. InEnvironment
dovresti visualizzare i valori perAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
eAZURE_AUTHORITY_HOST
.
Creare una coppia di chiavi SSH
Passare ad Azure Cloud Shell.
Crea una coppia di chiavi SSH usando il comando
az sshkey create
.az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
Abilita il componente aggiuntivo KEDA con un modello di ARM
Distribuisci il modello di Resource Manager per un cluster del servizio Azure Kubernetes.
Selezionare Modifica modello.
Abilita il componente aggiuntivo KEDA specificando il campo
workloadAutoScalerProfile
nel modello di ARM, come illustrato nell'esempio seguente:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
Seleziona Salva.
Aggiorna i valori necessari per il modello di ARM:
- Sottoscrizione: seleziona la sottoscrizione di Azure da usare per la distribuzione.
- Gruppo di risorse: seleziona il gruppo di risorse da usare per la distribuzione.
- Area: seleziona l'area da usare per la distribuzione.
- Prefisso DNS: immetti un nome DNS univoco da usare per il cluster.
- Nome utente amministratore Linux: immetti un nome utente per il cluster.
- Origine chiave pubblica SSH: seleziona Usa chiave esistente archiviata in Azure.
- Archivia chiavi: seleziona la coppia di chiavi creata in precedenza nell'articolo.
Selezionare Rivedi e crea>Crea.
Connettiti al tuo cluster del servizio Azure Kubernetes
Per connetterti al cluster Kubernetes dal computer locale, usa kubectl, il client da riga di comando di Kubernetes.
Se si usa Azure Cloud Shell, kubectl
è già installato. Puoi anche installarlo in locale usando il comando az aks install-cli
.
- Configura
kubectl
per connetterti al tuo cluster Kubernetes, usa il comando az servizio Azure Kubernetes get-credentials. L'esempio seguente ottiene le credenziali per il cluster AKS denominato MyAKSCluster in MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster
Esempio di distribuzione
Il frammento di codice seguente è una distribuzione di esempio che crea un cluster con KEDA abilitato con un singolo pool di nodi costituito da tre DS2_v5
nodi.
{
"$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"
}
}
]
}
Avvia il dimensionamento delle app con KEDA
Puoi dimensionare automaticamente le app con KEDA usando definizioni di risorse personalizzate (CRD). Per ulteriori informazioni, vedi la documentazione KEDA.
Rimuovere le risorse
Rimuovi il gruppo di risorse e tutte le risorse correlate usando il comando
az group delete
.az group delete --name <resource-group-name>
Passaggi successivi
Questo articolo ti ha spiegato come installare il componente aggiuntivo KEDA in un cluster del servizio Azure Kubernetes e verificare che sia installato e in esecuzione. Con il componente aggiuntivo KEDA installato nel cluster, puoi distribuire un'applicazione di esempio per avviare il dimensionamento delle app.
Per informazioni sulla risoluzione dei problemi di KEDA, vedi Risolvere i problemi relativi al componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA).
Per saperne di più, vedi la documentazione di KEDA upstream.
Azure Kubernetes Service