Compartir a través de


Escalado automático de aplicaciones simplificado con el complemento de escalado automático basado en eventos (KEDA) de Kubernetes

Importante

El complemento KEDA para AKS no admite actualmente la modificación de las solicitudes o límites de CPU y otros valores de Helm para el Servidor de Métricas o el Operador. Tenga en cuenta esta limitación al usar el complemento. Si tiene alguna pregunta, no dude en ponerse en contacto aquí.

El escalado automático controlado por eventos (KEDA) de Kubernetes es un componente ligero y de un solo propósito que se esfuerza por simplificar el escalado automático de aplicaciones y es un proyecto de graduado de Cloud Native Computing Federation (CNCF).

Aplica el escalado automático controlado por eventos para escalar la aplicación para satisfacer la demanda de forma sostenible y rentable con escala a cero.

El complemento KEDA facilita aún más la implementación de una instalación de KEDA administrada, lo que le proporciona un catálogo enriquecido de escaladores KEDA de Azure con los que puede escalar las aplicaciones en el clúster de Azure Kubernetes Services (AKS).

Nota:

La versión 2.15+ de KEDA presenta un cambio importante que quita la compatibilidad con la identidad del pod. Se recomienda pasar a la identidad de la carga de trabajo para la autenticación si usa la identidad de pod. Aunque el complemento administrado por KEDA no ejecuta actualmente keDA versión 2.15 o posterior, comenzará a ejecutarlo en la versión preliminar 1.32 de AKS.

Para más información sobre cómo escalar de forma segura las aplicaciones con identidad de carga de trabajo, lea nuestro tutorial. Para ver la directiva de cambio importante o de desuso de KEDA, lea la documentación oficial.

Arquitectura

KEDA proporciona dos componentes principales:

  • El operador KEDA permite a los usuarios finales escalar o reducir horizontalmente las cargas de trabajo de 0 a N instancias con compatibilidad con implementaciones, trabajos, StatefulSets, o cualquier recurso personalizado que defina el subrecurso /scale.
  • El servidor de métricas expone métricas externas a Horizontal Pod Autoscaler (HPA) en Kubernetes con fines de escalado automático, como mensajes en un tema de Kafka o el número de eventos de un centro de eventos de Azure. Debido a las limitaciones ascendentes, KEDA debe ser el único adaptador de métrica externo instalado.

Diagrama que muestra la arquitectura de KEDA y cómo extiende Kubernetes.

Obtenga más información sobre el funcionamiento de KEDA en la documentación oficial de KEDA.

Instalación

KEDA se puede agregar a un clúster de Azure Kubernetes Service (AKS) habilitando el complemento KEDA mediante una plantilla de ARM o la CLI de Azure.

El complemento KEDA proporciona una instalación totalmente compatible KEDA que se integra con AKS.

Características y funcionalidades

KEDA proporciona las siguientes funcionalidades y características:

  • Creación de aplicaciones sostenibles y rentables con escala a cero
  • Escalado de las cargas de trabajo de las aplicaciones para satisfacer la demanda mediante un catálogo enriquecido de escaladores KEDA de Azure.
  • Aplicaciones de escalado automático con ScaledObjects, como Implementaciones, StatefulSets o cualquier recurso personalizado que contenga un /scale subrecurso.
  • Escalabilidad automática de cargas de trabajo con ScaledJobs
  • Uso de la seguridad de nivel de producción mediante la desacoplación de la autenticación del escalado automático de las cargas de trabajo
  • Traiga su propio escalador externo para usar decisiones de escalado automático personalizadas
  • Integración con Id. de carga de trabajo de Microsoft Entra para la autenticación

Nota:

Si tiene previsto usar la identidad de carga de trabajo, habilite el complemento de identidad de carga de trabajo antes de habilitar el complemento KEDA.

Limitaciones del complemento

El complemento AKS de KEDA tiene las siguientes limitaciones:

  • El complemento HTTP (versión preliminar) de KEDA que escala las cargas de trabajo HTTP no se instala con la extensión, pero se puede implementar por separado.
  • El escalador externo para Azure Cosmos DB de KEDA para escalar en función de la fuente de cambios de Azure Cosmos DB no se instala con la extensión, pero se puede implementar por separado.
  • Solo se permite un servidor de métricas externo en el clúster de Kubernetes. Debido a que el complemento KEDA debe ser el único servidor de métricas externos dentro del clúster.
    • No se admiten varias instalaciones de KEDA
  • No se recomienda combinar KEDA ScaledObject con un escalador automático horizontal de pods (HPA) para escalar la misma carga de trabajo. Compiten entre sí porque KEDA usa Horizontal Pod Autoscaler (HPA) en segundo plano y da como resultado un comportamiento impar de escalado.
    • Si se crea primero un HPA, se crea una KEDA ScaledObject y la KEDA ScaledObject no puede ser creado.
    • Si primero se crea una KEDA ScaledObject y, a continuación, se crea un HPA, no se bloquea la creación de HPA.

Para ver preguntas generales sobre KEDA, se recomienda visitar la introducción a las preguntas frecuentes.

Nota:

Si usa id. de carga de trabajo de Microsoft Entra ID y habilita KEDA antes del identificador de carga de trabajo, debe reiniciar los pods del operador KEDA para que se puedan insertar las variables de entorno adecuadas:

  1. Para reiniciar los pods, ejecute kubectl rollout restart deployment keda-operator -n kube-system.

  2. Obtenga pods de operador KEDA mediante kubectl get pod -n kube-system y busque pods que comiencen por keda-operator.

  3. Compruebe la inserción correcta de las variables de entorno ejecutando kubectl describe pod <keda-operator-pod> -n kube-system. En Environment, debería ver los valores de AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE y AZURE_AUTHORITY_HOST.

Versiones de Kubernetes y KEDA admitidas

La versión de Kubernetes del clúster determina qué versión de KEDA está instalada en el clúster de AKS. Para ver qué versión de KEDA se asigna a cada versión de AKS, vea la columna de complementos administrados de AKS de la tabla de versiones de componentes de Kubernetes.

En el caso de las versiones de Kubernetes de disponibilidad general, AKS ofrece compatibilidad completa con la versión secundaria de KEDA correspondiente en la tabla. Las versiones preliminares de Kubernetes y la revisión más reciente de KEDA están parcialmente cubiertas por el soporte técnico al cliente de la mejor manera posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:

Pasos siguientes