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
- È 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.
- Assicurarsi che le regole del firewall siano configurate per consentire l'accesso al server API Kubernetes. Per ulteriori informazioni, vedere Regole di rete e FQDN in uscita per i cluster del servizio Azure Kubernetes (AKS).
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
è necessario visualizzare i valori perAZURE_TENANT_ID
,AZURE_FEDERATED_TOKEN_FILE
eAZURE_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
Creare un gruppo di risorse usando il comando
az group create
.az group create --name myResourceGroup --location eastus
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
suworkloadAutoScalerProfile.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.
Azure Kubernetes Service