Saltar al contenido principal

Instalar KEDA

Aprende cómo instalar KEDA (Kubernetes Event-Driven Autoscaling) en tu clúster usando diferentes métodos. KEDA permite escalar automáticamente tus aplicaciones basándote en eventos y métricas personalizadas.

Métodos de Instalación

Usando la interfaz de Lens (opción 1)

  1. En el menú de Lens o el IDE de kubernetes que uses, ve a Helm > Charts.
  2. En el buscador, escribe keda. Debería aparecerte el chart oficial de Bitnami:
    • bitnami/keda
  3. Selecciona la versión que desees (por ejemplo, la más reciente disponible).
  4. Haz clic en Install y en la siguiente ventana revisa los valores (YAML) para la instalación si deseas personalizar algo (por defecto, suele ser suficiente).
  5. Confirma la instalación presionando Install nuevamente.

Usando Helm por terminal (opción 2)

Si prefieres la línea de comandos o no dispones de la sección de Helm en Lens, puedes instalarlo así:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

# Creamos un namespace (opcional)
kubectl create namespace keda

# Instalamos KEDA
helm install keda bitnami/keda --namespace keda

Verificación de la Instalación

Después de la instalación, deberías ver que los recursos de KEDA se han creado:

En Lens

  • Selecciona el namespace donde instalaste KEDA (por defecto, keda si lo creaste manualmente).
  • Verás un Deployment llamado keda-operator, uno o más Pods, y otros recursos de tipo CRD (Custom Resource Definitions) como ScaledObjects y TriggerAuthentications.

Por terminal (opcional)

kubectl get all -n keda

Deberías ver el operador corriendo, por ejemplo:

NAME                                        READY   STATUS    RESTARTS   AGE
pod/keda-operator-xxxxx-xxxxx 1/1 Running 0 1m

Si todo está en orden, ya puedes usar KEDA para tu primer autoscaling basado en eventos o métricas personalizadas.

Configuración del ScaledObject

¿Qué es un ScaledObject?

Ahora crearemos un ScaledObject. Este recurso es el que indica a KEDA cómo y cuándo escalar el despliegue. En este ejemplo, usaremos un trigger de CPU, aunque KEDA lo maneja internamente vía HorizontalPodAutoscaler (HPA), pero la lógica se integra con la CRD de KEDA.

Puedes revisar todos los posibles triggers que ofrece KEDA en la documentación oficial aquí.

Creación del ScaledObject

Para crear este objeto vamos a usar la función de extend-charts en Sleakops. Para llegar desde el listado de proyectos en Sleakops vamos a Settings > Chart Configuration.

Una vez estés en la pantalla de Chart Configuration puedes agregar tu ScaledObjects.

Para poder completar los valores del ScaledObject vas a necesitar algunos valores como el namespace y el nombre del objeto deployment (generado por Sleakops) en el cluster.

  • El namespace podrías usar la siguiente anotación, como en el siguiente ejemplo: {{ .Values.global.namespace }} para sacarlo de los values que ya genera Sleakops
  • El nombre del deployment, por el momento no lo disponibilizamos. Para obtenerlo puedes entrar a Lens o tu IDE de kubernetes dirigirte a la sección de Workloads > Deployments
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: http-echo-scaledobject
namespace: { { .Values.global.namespace } }
spec:
scaleTargetRef:
# Debe coincidir con el nombre del Deployment
name: http-echo-deployment
# minReplicaCount y maxReplicaCount determinan los límites de escalado
minReplicaCount: 1
maxReplicaCount: 5

# Trigger que define la condición de escalado (en este caso CPU)
triggers:
- type: cpu
metadata:
type: Utilization # o AverageValue
value: "50" # por encima de 50% de CPU se escala