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:latestHorizontal 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: 50Limitaciones 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: 8000Despliegues 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
targetCPUUtilizationPercentageescala 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
- Contenerización de modelos de ML con Docker
- Despliegue en la nube: AWS SageMaker
- Servicio de alto rendimiento con Triton Inference Server
- Escalado y autoescalado de endpoints de modelos