Condividi tramite


Installare il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) usando un modello di ARM

Questo articolo illustra come distribuire il componente aggiuntivo di scalabilità automatica basata su eventi Kubernetes (KEDA) nel servizio Azure Kubernetes (AKS) usando un modello di ARM.

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

Creare una coppia di chiavi SSH

  1. Passare ad Azure Cloud Shell.

  2. Crea una coppia di chiavi SSH usando il comando az sshkey create.

    az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
    

Abilita il componente aggiuntivo KEDA con un modello di ARM

  1. Distribuisci il modello di Resource Manager per un cluster del servizio Azure Kubernetes.

  2. Selezionare Modifica modello.

  3. Abilita il componente aggiuntivo KEDA specificando il campo workloadAutoScalerProfile nel modello di ARM, come illustrato nell'esempio seguente:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. Seleziona Salva.

  5. Aggiorna i valori necessari per il modello di ARM:

    • Sottoscrizione: seleziona la sottoscrizione di Azure da usare per la distribuzione.
    • Gruppo di risorse: seleziona il gruppo di risorse da usare per la distribuzione.
    • Area: seleziona l'area da usare per la distribuzione.
    • Prefisso DNS: immetti un nome DNS univoco da usare per il cluster.
    • Nome utente amministratore Linux: immetti un nome utente per il cluster.
    • Origine chiave pubblica SSH: seleziona Usa chiave esistente archiviata in Azure.
    • Archivia chiavi: seleziona la coppia di chiavi creata in precedenza nell'articolo.
  6. Selezionare Rivedi e crea>Crea.

Connettiti al tuo cluster del servizio Azure Kubernetes

Per connetterti al cluster Kubernetes dal computer locale, usa kubectl, il client da riga di comando di Kubernetes.

Se si usa Azure Cloud Shell, kubectl è già installato. Puoi anche installarlo in locale usando il comando az aks install-cli.

  • Configura kubectl per connetterti al tuo cluster Kubernetes, usa il comando az servizio Azure Kubernetes get-credentials. L'esempio seguente ottiene le credenziali per il cluster AKS denominato MyAKSCluster in MyResourceGroup:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

Esempio di distribuzione

Il frammento di codice seguente è una distribuzione di esempio che crea un cluster con KEDA abilitato con un singolo pool di nodi costituito da tre DS2_v5 nodi.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "apiVersion": "2023-03-01",
            "dependsOn": [],
            "type": "Microsoft.ContainerService/managedClusters",
            "location": "westcentralus",
            "name": "myAKSCluster",
            "properties": {
                "kubernetesVersion": "1.27",
                "enableRBAC": true,
                "dnsPrefix": "myAKSCluster",
                "agentPoolProfiles": [
                    {
                        "name": "agentpool",
                        "osDiskSizeGB": 200,
                        "count": 3,
                        "enableAutoScaling": false,
                        "vmSize": "Standard_D2S_v5",
                        "osType": "Linux",
                        "type": "VirtualMachineScaleSets",
                        "mode": "System",
                        "maxPods": 110,
                        "availabilityZones": [],
                        "nodeTaints": [],
                        "enableNodePublicIP": false
                    }
                ],
                "networkProfile": {
                    "loadBalancerSku": "standard",
                    "networkPlugin": "kubenet"
                },
                "workloadAutoScalerProfile": {
                    "keda": {
                        "enabled": true
                    }
                }
            },
            "identity": {
                "type": "SystemAssigned"
            }
        }
    ]
}

Avvia il dimensionamento delle app con KEDA

Puoi dimensionare automaticamente le app con KEDA usando definizioni di risorse personalizzate (CRD). Per ulteriori informazioni, vedi la documentazione KEDA.

Rimuovere le risorse

  • Rimuovi il gruppo di risorse e tutte le risorse correlate usando il comando az group delete.

    az group delete --name <resource-group-name>
    

Passaggi successivi

Questo articolo ti ha spiegato come installare il componente aggiuntivo KEDA in un cluster del servizio Azure Kubernetes e verificare che sia installato e in esecuzione. Con il componente aggiuntivo KEDA installato nel cluster, puoi 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.