Dimensionamento automático simplificado de aplicativos com o complemento Kubernetes Event-driven Autoscaling (KEDA)

O Kubernetes Event-driven Autoscaling (KEDA) é um componente leve e de finalidade única que se esforça para tornar o dimensionamento automático de aplicativos simples e é um projeto de pós-graduação CNCF.

Ele aplica o dimensionamento automático orientado a eventos para dimensionar seu aplicativo para atender à demanda de forma sustentável e econômica com escala até zero.

O complemento KEDA torna isso ainda mais fácil implantando uma instalação KEDA gerenciada, fornecendo um catálogo avançado de escaladores KEDA do Azure com os quais você pode dimensionar seus aplicativos em seu cluster de Serviços Kubernetes do Azure (AKS).

Arquitetura

A KEDA fornece dois componentes principais:

  • O operador KEDA permite que os usuários finais dimensionem cargas de trabalho de 0 para N instâncias com suporte para Implantações Kubernetes, Jobs, StatefulSets ou qualquer recurso personalizado que defina /scale subrecurso.
  • O servidor de métricas expõe métricas externas ao Horizontal Pod Autoscaler (HPA) no Kubernetes para fins de dimensionamento automático, como mensagens em um tópico do Kafka ou número de eventos em um hub de eventos do Azure. Devido a limitações upstream, KEDA deve ser o único adaptador métrico instalado.

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

Saiba mais sobre como o KEDA funciona na documentação oficial do KEDA.

Instalação

O KEDA pode ser adicionado ao seu cluster do Serviço Kubernetes do Azure (AKS) habilitando o complemento KEDA usando um modelo ARM ou CLI do Azure.

O complemento KEDA fornece uma instalação totalmente suportada do KEDA que é integrada com o AKS.

Capacidades e funcionalidades

O KEDA fornece os seguintes recursos e capacidades:

  • Crie aplicativos sustentáveis e econômicos com escala zero
  • Dimensione cargas de trabalho de aplicativos para atender à demanda usando um catálogo avançado de escaladores KEDA do Azure
  • Dimensione automaticamente aplicativos com ScaledObjects, como Deployments, StatefulSets ou qualquer recurso personalizado que defina /scale subrecurso
  • Dimensione automaticamente cargas de trabalho semelhantes a cargas de trabalho com ScaledJobs
  • Use a segurança de nível de produção desacoplando a autenticação de dimensionamento automático das cargas de trabalho
  • Traga seu próprio escalador externo para usar decisões personalizadas de dimensionamento automático
  • Integração com o ID de carga de trabalho do Microsoft Entra para autenticação

Nota

Se você planeja usar a identidade da carga de trabalho, habilite o complemento de identidade da carga de trabalho antes de habilitar o complemento KEDA.

Limitações do complemento

O complemento KEDA AKS tem as seguintes limitações:

  • O suplemento de HTTP (visualização) do KEDA para dimensionar cargas de trabalho de HTTP não é instalado com a extensão, mas pode ser implementado separadamente.
  • O dimensionador externo do KEDA para o Azure Cosmos DB para dimensionar com base no feed de alterações do Azure Cosmos DB não é instalado com a extensão, mas pode ser implementado separadamente.
  • Apenas um servidor de métricas é permitido no cluster do Kubernetes. Por isso, o suplemento do KEDA deve ser o único servidor de métricas dentro do cluster.
    • Várias instalações do KEDA não são suportadas

Para perguntas gerais sobre KEDA, recomendamos visitar a visão geral das Perguntas frequentes.

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.

Versões Kubernetes e KEDA suportadas

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 complementosgerenciados 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:

Próximos passos