Partilhar via


Instale o complemento Kubernetes Event-driven Autoscaling (KEDA) usando a CLI do Azure

Este artigo mostra como instalar o complemento Kubernetes Event-driven Autoscaling (KEDA) no Serviço Kubernetes do Azure (AKS) usando a CLI do Azure.

Importante

A versão do Kubernetes do cluster determina qual versão do KEDA será instalada no cluster AKS. Para ver qual versão do KEDA mapeia para cada versão do AKS, consulte a coluna de complementos gerenciados pelo AKS da tabela de versões do componente Kubernetes.

Para as versões do GA Kubernetes, o AKS oferece suporte total da versão secundária KEDA correspondente na tabela. As versões de visualização do Kubernetes e o patch KEDA mais recente são parcialmente cobertos pelo suporte ao cliente com base no melhor esforço. Como tal, estas funcionalidades não se destinam a utilização em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Nota

KEDA versão 2.15 introduz uma mudança de quebra que remove o suporte de identidade pod. Recomendamos passar para a identidade da carga de trabalho para sua autenticação se você estiver usando a identidade do pod. Embora o complemento gerenciado pelo KEDA não execute atualmente o KEDA versão 2.15, ele começará a executá-lo na versão de visualização do AKS 1.31.

Para obter mais informações sobre como dimensionar com segurança seus aplicativos com identidade de carga de trabalho, leia nosso tutorial. Para ver a política de alteração/depreciação da KEDA, leia a documentação oficial.

Antes de começar

  • Precisa de uma subscrição do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
  • Você precisa da CLI do Azure instalada.
  • Certifique-se de ter regras de firewall configuradas para permitir o acesso ao servidor de API do Kubernetes. Para obter mais informações, consulte Rede de saída e regras FQDN para clusters do Serviço Kubernetes do Azure (AKS).

Nota

Se você estiver usando o Microsoft Entra Workload ID e habilitar o KEDA antes do Workload ID, precisará reiniciar os pods do operador KEDA para que as variáveis de ambiente adequadas possam ser injetadas:

  1. Reinicie os pods executando kubectl rollout restart deployment keda-operator -n kube-system.

  2. Obtenha pods de operador KEDA usando kubectl get pod -n kube-system e localizando pods que comecem com keda-operator.

  3. Verifique se a injeção bem-sucedida das variáveis de ambiente está executando kubectl describe pod <keda-operator-pod> -n kube-system. Em Environment, você verá os valores de AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILEe AZURE_AUTHORITY_HOST.

Instalar o complemento KEDA com a CLI do Azure

Para instalar o complemento KEDA, use --enable-keda ao criar ou atualizar um cluster.

Habilite o complemento KEDA no seu cluster AKS

Nota

Enquanto o KEDA fornece várias opções de personalização, o complemento KEDA atualmente fornece configuração básica comum.

Se você precisar de configurações personalizadas, poderá editar manualmente os arquivos KEDA YAML para personalizar a instalação. O Azure não oferece suporte para configurações personalizadas.

Crie um novo cluster AKS com o complemento KEDA ativado

  1. Crie um grupo de recursos usando o az group create comando.

    az group create --name myResourceGroup --location eastus
    
  2. Crie um novo cluster AKS usando o az aks create comando e habilite o complemento KEDA usando o --enable-keda sinalizador.

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

Ativar o complemento KEDA em um cluster AKS existente

  • Atualize um cluster existente usando o az aks update comando e habilite o complemento KEDA usando o --enable-keda sinalizador.

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

Obter as credenciais para o cluster

  • Obtenha as credenciais para o seu cluster AKS usando o az aks get-credentials comando.

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

Verifique se o complemento KEDA está instalado no cluster

  • Verifique se o complemento KEDA está instalado no cluster usando o az aks show comando e defina o --query parâmetro como workloadAutoScalerProfile.keda.enabled.

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

    O exemplo de saída a seguir mostra que o complemento KEDA está instalado no cluster:

    true
    

Verifique se o KEDA está em execução no cluster

  • Verifique se o complemento KEDA está em execução no cluster usando o kubectl get pods comando.

    kubectl get pods -n kube-system 
    

    O exemplo de saída a seguir mostra que o operador KEDA, o gancho de admissões e o servidor de API de métricas estão instalados no 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
    

Verifique a versão do KEDA no cluster

Para verificar a versão do seu KEDA, use kubectl get crd/scaledobjects.keda.sh -o yaml . Por exemplo:

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

O exemplo de saída a seguir mostra a configuração do KEDA no app.kubernetes.io/version rótulo:

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

Desative o complemento KEDA no seu cluster AKS

  • Desative o complemento KEDA no cluster usando o az aks update comando com o --disable-keda sinalizador.

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

Próximos passos

Este artigo mostrou como instalar o complemento KEDA em um cluster AKS usando a CLI do Azure.

Com o complemento KEDA instalado em seu cluster, você pode implantar um aplicativo de exemplo para começar a dimensionar aplicativos.

Para obter informações sobre a solução de problemas do KEDA, consulte Solucionar problemas do complemento Kubernetes Event-driven Autoscaling (KEDA).

Para saber mais, consulte os documentos KEDA upstream.