Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Il componente aggiuntivo KEDA per AKS non supporta attualmente la modifica delle richieste o dei limiti della CPU e di altri valori Helm per il Metrics Server o l'Operator. Tenere presente questa limitazione quando si usa il componente aggiuntivo. In caso di domande, è possibile contattare qui.
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 GA di Kubernetes, AKS offre il supporto completo per la relativa versione secondaria di KEDA riportata 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 significativa che elimina il supporto per le identità dei pod. Se si utilizza l'identità del pod, consigliamo di passare all'identità del carico di lavoro per l'autenticazione. Anche se il componente aggiuntivo gestito di KEDA non esegue attualmente la versione 2.15+ di KEDA, inizierà a eseguirlo nella versione di anteprima di AKS 1.31.
Per ulteriori informazioni su come scalare in modo sicuro le applicazioni con identità del carico di lavoro, leggi il nostro tutorial. Per consultare il criterio di KEDA relativo alle modifiche incompatibili e alla deprecazione, 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, vedere Regole di rete in uscita e FQDN per i cluster del Servizio Azure Kubernetes (AKS).
- creare una coppia di chiavi SSH.
Nota
Se usi ID dei carichi di lavoro di Microsoft Entra e abiliti KEDA prima di ID dei carichi di lavoro di Microsoft Entra, devi riavviare i pod dell'operatore KEDA affinché vengano impostate le variabili di ambiente corrette:
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-systeme 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. InEnvironmentdovresti visualizzare i valori perAZURE_TENANT_ID,AZURE_FEDERATED_TOKEN_FILEeAZURE_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 ARM per un cluster AKS.
Selezionare Modifica modello.
Abilita il componente aggiuntivo KEDA specificando il campo
workloadAutoScalerProfilenel 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 AKS
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.
- Per configurare
kubectlper la connessione al tuo cluster Kubernetes, usa il comando az aks 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.