Installare il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) usando l’interfaccia della riga di comando di Azure

Questo articolo illustra come installare il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) nel servizio Azure Kubernetes (AKS) usando un l’interfaccia della riga di comando di Azure.

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

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 Environmentè necessario visualizzare i valori per AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEe AZURE_AUTHORITY_HOST.

Installare il componente aggiuntivo KEDA con l'interfaccia della riga di comando di Azure

Per installare il componente aggiuntivo KEDA, usare --enable-keda durante la creazione o l'aggiornamento di un cluster.

Abilitare il componente aggiuntivo KEDA nel cluster del servizio Azure Kubernetes

Nota

Sebbene KEDA fornisca varie opzioni di personalizzazione, il componente aggiuntivo KEDA attualmente fornisce una configurazione comune di base.

Se sono necessarie configurazioni personalizzate, è possibile modificare manualmente i file YAML KEDA per personalizzare l'installazione. Azure non offre supporto per le configurazioni personalizzate.

Creare un nuovo cluster del servizio Azure Kubernetes con il componente aggiuntivo KEDA

  1. Creare un gruppo di risorse usando il comando az group create.

    az group create --name myResourceGroup --location eastus
    
  2. Creare un nuovo cluster del servizio Azure Kubernetes usando il comando az aks create e abilitare il componente aggiuntivo KEDA usando il flag --enable-keda.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-keda \
        --generate-ssh-keys
    

Abilitare il componente aggiuntivo KEDA in un cluster del servizio Azure Kubernetes esistente

  • Aggiornare un cluster esistente usando il comando az aks update e abilitare il componente aggiuntivo KEDA usando il flag --enable-keda.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-keda 
    

Ottenere le credenziali per il cluster

  • Ottenere le credenziali per il cluster del servizio Azure Kubernetes usando il comando az aks get-credentials.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Verificare che il componente aggiuntivo KEDA sia installato nel cluster

  • Verificare che il componente aggiuntivo KEDA sia installato nel cluster usando il comando az aks show e impostare il parametro --query su workloadAutoScalerProfile.keda.enabled.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled" 
    

    L'output di esempio seguente mostra che il componente aggiuntivo KEDA è installato nel cluster:

    true
    

Verificare che KEDA sia in esecuzione nel cluster

  • Verificare che il componente aggiuntivo KEDA sia in esecuzione nel cluster usando il comando kubectl get pods.

    kubectl get pods -n kube-system 
    

    L'output di esempio seguente mostra l'operatore KEDA, l'hook di ammissione e il server API delle metriche installati nel cluster:

    keda-admission-webhooks-**********-2n9zl           1/1     Running   0            3d18h
    keda-admission-webhooks-**********-69dkg           1/1     Running   0            3d18h
    keda-operator-*********-4hb5n                      1/1     Running   0            3d18h
    keda-operator-*********-pckpx                      1/1     Running   0            3d18h
    keda-operator-metrics-apiserver-**********-gqg4s   1/1     Running   0            3d18h
    keda-operator-metrics-apiserver-**********-trfcb   1/1     Running   0            3d18h
    

Verificare la versione KEDA nel cluster

Per verificare la versione di KEDA, usare kubectl get crd/scaledobjects.keda.sh -o yaml . Ad esempio:

kubectl get crd/scaledobjects.keda.sh -o yaml 

L'output di esempio seguente mostra la configurazione di KEDA nell'etichetta app.kubernetes.io/version :

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
    meta.helm.sh/release-name: aks-managed-keda
    meta.helm.sh/release-namespace: kube-system
  creationTimestamp: "2023-08-09T15:58:56Z"
  generation: 1
  labels:
    app.kubernetes.io/component: operator
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: keda-operator
    app.kubernetes.io/part-of: keda-operator
    app.kubernetes.io/version: 2.10.1
    helm.toolkit.fluxcd.io/name: keda-adapter-helmrelease
    helm.toolkit.fluxcd.io/namespace: 64d3b6fd3365790001260647
  name: scaledobjects.keda.sh
  resourceVersion: "1421"
  uid: 29109c8c-638a-4bf5-ac1b-c28ad9aa11fa
spec:
  conversion:
    strategy: None
  group: keda.sh
  names:
    kind: ScaledObject
    listKind: ScaledObjectList
    plural: scaledobjects
    shortNames:
    - so
    singular: scaledobject
  scope: Namespaced
  # Redacted due to length

Disabilitare il componente aggiuntivo KEDA nel cluster del servizio Azure Kubernetes

  • Disabilitare il componente aggiuntivo KEDA nel cluster usando il comando az aks update con il flag --disable-keda.

    az aks update \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --disable-keda 
    

Passaggi successivi

Questo articolo ha illustrato come installare il componente aggiuntivo KEDA in un cluster del servizio Azure Kubernetes usando l'interfaccia della riga di comando di Azure.

Con il componente aggiuntivo KEDA installato nel cluster è possibile 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.