Scalabilità automatica semplificata delle applicazioni con il componente aggiuntivo KEDA (Event-driven AutoScaling) di Kubernetes
La scalabilità automatica guidata dagli eventi di Kubernetes (KEDA) è un componente leggero e a scopo singolo che punta a semplificare la scalabilità automatica delle applicazioni ed è un progetto CNCF Graduate.
Applica la scalabilità automatica guidata dagli eventi per dimensionare l'applicazione in modo da soddisfare la domanda in maniera sostenibile e conveniente con scalabilità orizzontale a zero.
Il componente aggiuntivo KEDA semplifica ulteriormente la distribuzione di un'installazione KEDA gestita, offrendo un catalogo completo di scaler KEDA di Azure con cui puoi dimensionare le tue applicazioni nel cluster dei servizi Azure Kubernetes (AKS).
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.32.
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 di modifica che causa un'interruzione /deprecazione di KEDA, leggere la documentazione ufficiale.
Architettura
KEDA offre due componenti principali:
- L'operatore KEDA consente agli utenti finali di dimensionare i carichi di lavoro in entrata/uscita da 0 a N istanze con supporto per distribuzioni Kubernetes, processi, StatefulSets o qualsiasi risorsa personalizzata che definisce la
/scale
sottorisorsa. - Il server delle metriche espone metriche esterne a Horizontal Pod Autoscaler (HPA) in Kubernetes per scopi di scalabilità automatica, ad esempio messaggi in un argomento Kafka o numero di eventi in un hub eventi di Azure. A causa delle limitazioni upstream, KEDA deve essere l'unica scheda delle metriche esterna installata.
Altre informazioni sul funzionamento di KEDA sono disponibili nella documentazione ufficiale di KEDA.
Installazione
KEDA può essere aggiunto al cluster del servizio Azure Kubernetes (AKS) abilitando il componente aggiuntivo KEDA usando un modello di ARM o l'interfaccia della riga di comando di Azure.
Il componente aggiuntivo KEDA fornisce un'installazione completamente supportata di KEDA integrata con AKS.
Funzionalità e caratteristiche
KEDA offre le seguenti funzionalità e caratteristiche:
- Creare applicazioni sostenibili e convenienti con scalabilità a zero
- Dimensionare i carichi di lavoro delle applicazioni per soddisfare la domanda usando un catalogo completo di scaler KEDA di Azure
- Dimensionare automaticamente le applicazioni con
ScaledObjects
, ad esempio Distribuzioni, StatefulSets o qualsiasi risorsa personalizzata che definisca la/scale
sottorisorsa - Dimensionare automaticamente carichi di lavoro simili a processi con
ScaledJobs
- Usare la sicurezza di livello di produzione separando l'autenticazione con scalabilità automatica dai carichi di lavoro
- Scaler esterno Bring-Your-Own per usare decisioni di scalabilità automatica personalizzate
- Eseguire l'integrazione con l'ID del carico di lavoro di Microsoft Entra per l'autenticazione
Nota
Se prevedi di usare l'identità del carico di lavoro, abilita il componente aggiuntivo identità del carico di lavoro prima di abilitare il componente aggiuntivo KEDA.
Limitazioni dei componenti aggiuntivi
Il componente aggiuntivo KEDA di AKS presenta le limitazioni seguenti:
- Il componente aggiuntivo HTTP di KEDA (anteprima) per scalare i carichi di lavoro HTTP non è installato con l'estensione, ma può essere distribuito separatamente.
- Lo scaler esterno di KEDA per Azure Cosmos DB per la scalabilità in base al feed di modifiche di Azure Cosmos DB non è installato con l'estensione, ma può essere distribuito separatamente.
- Nel cluster di Kubernetes è consentito un solo server delle metriche esterno. Per questo motivo, il componente aggiuntivo KEDA deve essere l'unico server delle metriche esterno all'interno del cluster.
- Le installazioni multiple KEDA non sono supportate
Per domande generali su KEDA, è consigliabile visitare la panoramica delle domande frequenti.
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
.
Versioni di Kubernetes e KEDA supportate
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:
- Criteri di supporto del Servizio Azure Kubernetes (AKS)
- Domande frequenti relative al supporto tecnico Azure
Passaggi successivi
- Abilitare il componente aggiuntivo KEDA con un modello di ARM
- Abilitare il componente aggiuntivo KEDA con l'interfaccia della riga di comando di Azure
- Risolvere i problemi relativi ai componenti aggiuntivi KEDA
- Dimensionare automaticamente un ruolo di lavoro .NET Core che elabora i messaggi della coda del bus di servizio di Azure
- Visualizzare la documentazione upstream di KEDA
Azure Kubernetes Service