0Pricing
Learn AI with Python · Lección

Escalado y autoescalado de endpoints de modelos

HPA de Kubernetes para pods de modelos, escalado basado en tráfico, despliegue A/B y versiones canary.

Escalado y autoescalado de endpoints de modelos es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Por qué el escalado automático

El tráfico de inferencia rara vez es constante. Aprovisionar recursos para la carga máxima desperdicia dinero por la noche; aprovisionarlos para la carga media provoca fallos en los picos. El escalado automático ajusta automáticamente el número de réplicas según la demanda, para que pague por lo que usa y el servicio siga respondiendo.

Pods y réplicas

En Kubernetes, un servidor de modelos se ejecuta como un Deployment de pods idénticos (réplicas). Escalar significa cambiar el número de réplicas. Un Service distribuye las solicitudes entre las réplicas disponibles.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: model-server
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: server
          image: my-model:latest

Horizontal Pod Autoscaler

El Horizontal Pod Autoscaler (HPA) supervisa una métrica y añade o elimina pods para mantenerla cerca de un objetivo. La métrica clásica es la utilización de CPU.

HPA según la utilización de CPU

targetCPUUtilizationPercentage indica al HPA que mantenga la CPU media cerca de un objetivo. Si los pods alcanzan una media del 80 % de CPU y el objetivo es del 50 %, el HPA escala verticalmente hasta que la utilización vuelva a aproximarse al 50 %.

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: model-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: model-server
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50

Limitaciones del escalado basado en CPU

La CPU es un indicador indirecto poco fiable para algunas cargas de trabajo. Un modelo en GPU puede estar limitado por la GPU mientras la CPU permanece con poca utilización, o un trabajador asíncrono puede tener una cola creciente mientras la CPU está inactiva. En estos casos, escale según una señal específica de la carga de trabajo.

KEDA para el escalado basado en eventos

KEDA (Kubernetes Event-Driven Autoscaling) escala según métricas externas, como la longitud de una cola, el retraso de Kafka o las consultas de Prometheus. Incluso puede reducir la escala a cero cuando no hay trabajo, algo que HPA no puede hacer por sí solo.

ScaledObject de KEDA basado en colas

Este ScaledObject de KEDA añade trabajadores cuando crece una cola de mensajes. Cada unidad de acumulación de queueLength activa otra réplica, de modo que el consumidor puede absorber los picos.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: inference-worker
spec:
  scaleTargetRef:
    name: inference-worker
  minReplicaCount: 0
  maxReplicaCount: 20
  triggers:
    - type: rabbitmq
      metadata:
        queueName: inference
        queueLength: "10"

Balanceo de carga con Ingress

El tráfico externo llega a los pods a través de un ingress. Un controlador de ingress de nginx termina TLS y distribuye las solicitudes entre el Service que respalda sus réplicas, por lo que el aumento de escala distribuye la carga de inmediato.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: model-ingress
spec:
  ingressClassName: nginx
  rules:
    - host: api.example.com
      http:
        paths:
          - path: /predict
            pathType: Prefix
            backend:
              service:
                name: model-server
                port:
                  number: 8000

Despliegues seguros: canary

Implementar una nueva versión del modelo para todo el tráfico de una vez es arriesgado. Un despliegue canary envía una pequeña parte del tráfico a la nueva versión, supervisa sus métricas y después desvía gradualmente una cantidad mayor.

Canary con pesos de tráfico

Las anotaciones canary del ingress de nginx dirigen un porcentaje de las solicitudes a un segundo deployment. Comience con un 10 %, verifique la tasa de errores y la latencia y, después, aumente el peso hasta el 100 %.

metadata:
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-weight: "10"

Integrar el escalado

Una configuración sólida combina todos estos elementos:

  • HPA o KEDA establece el número de réplicas según la demanda
  • Ingress distribuye la carga entre las réplicas
  • Los pesos canary implementan nuevas versiones de forma segura

En conjunto, proporcionan un servicio de modelos elástico, resistente y de bajo riesgo.

Comprobación rápida

Compruebe cuánto sabe sobre el escalado.

Resumen

Ha aprendido a escalar endpoints de modelos:

  • HPA con targetCPUUtilizationPercentage escala según la CPU
  • KEDA escala según la longitud de la cola y admite reducir la escala a cero
  • El ingress de nginx distribuye la carga entre las réplicas
  • Los pesos canary desplazan el tráfico gradualmente para realizar despliegues seguros

Preguntas frecuentes

¿La lección «Escalado y autoescalado de endpoints de modelos» es gratis?

Sí — el texto completo de «Escalado y autoescalado de endpoints de modelos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Escalado y autoescalado de endpoints de modelos»?

HPA de Kubernetes para pods de modelos, escalado basado en tráfico, despliegue A/B y versiones canary. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Escalado y autoescalado de endpoints de modelos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Contenerización de modelos de ML con Docker
  2. Despliegue en la nube: AWS SageMaker
  3. Servicio de alto rendimiento con Triton Inference Server
  4. Escalado y autoescalado de endpoints de modelos
← Volver a Learn AI with Python