Partilhar via


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

Importante

Atualmente, o complemento KEDA para AKS não suporta a modificação das solicitações ou limites de CPU e outros valores de Helm para o Metrics Server ou Operator. Tenha essa limitação em mente ao usar o complemento. Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato aqui.

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 corresponde a cada versão do AKS, consulte a coluna de complementos geridos pelo AKS na tabela de versões do componente Kubernetes.

Para as versões GA do Kubernetes, o AKS oferece suporte total da versão menor correspondente do KEDA na tabela. As versões de pré-visualização do Kubernetes e o patch KEDA mais recente são parcialmente cobertos pelo suporte ao cliente na medida do possível. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Observação

KEDA versão 2.15+ introduz uma alteração significativa que remove o suporte para identidade de pod. Recomendamos mudar para a identidade de carga de trabalho para sua autenticação, caso esteja utilizando a identidade de pod. Embora o complemento gerenciado pelo KEDA não execute atualmente a versão 2.15+ do KEDA, 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 e descontinuaçã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).

Observação

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 das variáveis de ambiente foi bem-sucedida 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

Observação

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 comando az group create.

    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 
    

Obtenha as credenciais para o seu 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 

A saída de exemplo a seguir mostra a configuração do KEDA na etiqueta 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

Desative o complemento KEDA no seu cluster AKS

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

    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.