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).

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'unico adattatore metrico installato.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

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 Kubernetes è consentito un solo server di metriche. Per questo motivo, il componente aggiuntivo KEDA deve essere l'unico server di metriche 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:

  1. Riavvia i pod eseguendo kubectl rollout restart deployment keda-operator -n kube-system.

  2. Ottieni i pod dell'operatore KEDA usando kubectl get pod -n kube-system e cercando i pod che iniziano con keda-operator.

  3. Verifica l'esito positivo dell'inserimento delle variabili di ambiente eseguendo kubectl describe pod <keda-operator-pod> -n kube-system. In Environmentdovresti visualizzare i valori per AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEe AZURE_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:

Passaggi successivi