Condividi tramite


Scalabilità automatica semplificata delle applicazioni con il componente aggiuntivo KEDA (Event-driven AutoScaling) di Kubernetes

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.

La scalabilità automatica di Kubernetes basata su eventi (KEDA) è un componente semplice e leggero che si impegna a rendere semplice la scalabilità automatica delle applicazioni ed è un progetto laureato della Cloud Native Computing Foundation (CNCF).

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 significativa che elimina il supporto per le 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 non esegue attualmente KEDA versione 2.15+, inizierà a eseguirlo nell'anteprima di AKS versione 1.32.

Per ulteriori informazioni su come ridimensionare in modo sicuro le applicazioni con identità del carico di lavoro, leggi la nostra esercitazione. Per visualizzare la politica di modifica/deprecazione di KEDA, leggi la documentazione ufficiale.

Architettura

KEDA offre due componenti principali:

  • L'operatore KEDA consente agli utenti finali di ridimensionare i carichi di lavoro da 0 a N istanze con supporto per Deployment Kubernetes, Job, StatefulSets, o qualsiasi risorsa personalizzata che definisce la sottorisorsa /scale.
  • 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.

Diagramma che mostra l'architettura di KEDA e come estende Kubernetes.

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
  • Ridimensionare automaticamente le applicazioni con ScaledObjects, come i Deployment, StatefulSets o qualsiasi risorsa personalizzata che definisce la sottorisorsa /scale
  • 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
  • Non è consigliabile combinare KEDA ScaledObject con un Horizontal Pod Autoscaler (HPA) per ridimensionare lo stesso workload. Si concorrono tra loro perché KEDA usa horizontal pod autoscaler (HPA) in background e comporta un comportamento di ridimensionamento dispari.
    • Se prima viene creato un HPA, viene creato un KEDA ScaledObject e non verrà creato KEDA ScaledObject .
    • Se viene creato prima un keda ScaledObject e quindi viene creato un HPA, la creazione di HPA non viene bloccata.

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 versione di Kubernetes del tuo cluster determina quale versione di KEDA è 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