Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Kubernetes

Learn how Kubernetes automates the deployment and scaling of AI models. Explore orchestrating [Ultralytics YOLO26](https://docs.ultralytics.com/models/yolo26/) for production workflows and MLOps.

Kubernetes, a menudo denominado K8s, es una plataforma de código abierto diseñada para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores. Desarrollado originalmente por Google ahora mantenido por la Cloud Native Computing Foundation (CNCF), Kubernetes se ha convertido en el estándar para la orquestación de software en la nube. En el contexto de la inteligencia artificial (IA) y el aprendizaje automático (ML), sirve como la capa de infraestructura crítica que permite a los equipos de ingeniería gestionar flujos de trabajo complejos, desde la formación distribuida hasta la inferencia de producción de alta disponibilidad . Al abstraer el hardware subyacente, Kubernetes garantiza que las aplicaciones se ejecuten de forma fiable y eficiente, independientemente de si están alojadas en las instalaciones o a través de proveedores de nube pública.

Arquitectura y conceptos básicos

En esencia, Kubernetes opera en una arquitectura de clúster, que consiste en un conjunto de máquinas de trabajo llamadas nodos. Estos nodos ejecutan cargas de trabajo de contenedorización, mientras que un plano de control gestiona el estado general del clúster. La unidad más pequeña que se puede implementar en Kubernetes es un «pod», que encapsula uno o más contenedores que comparten recursos de almacenamiento y red. Esta abstracción es vital para las aplicaciones de visión por ordenador, ya que permite a los desarrolladores empaquetar dependencias, como CUDA específicas para unidades de procesamiento gráfico (GPU)— en un entorno coherente. Los principales servicios en la nube, como Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS) y Google Engine (GKE), ofrecen versiones gestionadas de esta arquitectura, lo que simplifica la carga de mantenimiento para los equipos de ciencia de datos.

Por qué Kubernetes es importante para la IA

El principal valor de Kubernetes en las operaciones de aprendizaje automático (MLOps) radica en su capacidad para gestionar cargas de trabajo dinámicas. Los modelos de IA suelen requerir una enorme potencia computacional durante el entrenamiento y una baja latencia de inferencia durante la implementación.

  • Escalabilidad: Kubernetes emplea el autoescalado para ajustar los recursos automáticamente. Si se produce un pico repentino de tráfico, el autoescalador horizontal de pods puede aumentar el número de pods de inferencia para mantener la escalabilidad sin intervención manual.
  • Optimización de recursos: Es fundamental asignar de manera eficiente el costoso hardware. Kubernetes permite GPU fraccionado GPU y la afinidad de nodos, lo que garantiza que los modelos de aprendizaje profundo solo consuman recursos cuando los trabajos activos los requieran.
  • Implementación resiliente: Es esencial garantizar una alta disponibilidad durante la implementación del modelo. Si un nodo falla, Kubernetes reinicia automáticamente los pods afectados en nodos sanos, lo que evita el tiempo de inactividad de los servicios API críticos.

Aplicaciones en el mundo real

Kubernetes es la columna vertebral de muchas implementaciones de IA a gran escala en diversos sectores:

  1. Gestión del tráfico en ciudades inteligentes: un municipio puede implementar modelos Ultralytics para analizar las transmisiones de vídeo de miles de intersecciones. Mediante Kubernetes, el sistema puede ampliar dinámicamente los recursos durante las horas punta para gestionar el aumento de la carga de detección de objetos y reducirlos por la noche para ahorrar costes. Este enfoque es fundamental para los modernos sistemas de gestión del tráfico.
  2. Personalización del comercio electrónico: los minoristas en línea utilizan complejos sistemas de recomendación basados en microservicios. Un servicio puede encargarse de la generación de candidatos, mientras que otro gestiona la reclasificación. Kubernetes coordina estos distintos servicios, lo que permite a los equipos actualizar la red neuronal de clasificación de forma independiente sin interrumpir toda la experiencia de compra, lo que facilita la integración continua.

Diferencias entre Kubernetes y Docker

Un punto común de confusión es la relación entre Kubernetes y Docker. No son competidores, sino tecnologías complementarias . Docker es una herramienta para crear y ejecutar contenedores individuales (empaquetar la aplicación), mientras que Kubernetes es una herramienta para gestionar una flota de esos contenedores en varias máquinas. Se utiliza Docker para crear los pesos del modelo y el código en una imagen, y luego se utiliza Kubernetes para determinar dónde, cuándo y cuántas copias de esa imagen se ejecutan en producción.

Ejemplo: Script de inferencia para la contenedorización

Para implementar un modelo en Kubernetes, los desarrolladores suelen empezar con un Python que actúa como punto de entrada para el contenedor. El siguiente código muestra una tarea de inferencia sencilla utilizando el modelo Ultralytics . Este script se ejecutaría dentro de un pod, procesando las solicitudes entrantes.

from ultralytics import YOLO

# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")

# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")

Herramientas y ecosistema

El ecosistema Kubernetes incluye una amplia gama de herramientas diseñadas para la ciencia de datos. Kubeflow es un popular kit de herramientas dedicado a hacer que las implementaciones de flujos de trabajo de ML en Kubernetes sean sencillas, portátiles y escalables. Para supervisar el estado del clúster y las métricas de las aplicaciones, los ingenieros suelen recurrir a Prometheus. Para simplificar aún más la complejidad del entrenamiento y la implementación de modelos en estos entornos, la Ultralytics ofrece una interfaz unificada que automatiza la gestión de conjuntos de datos y el entrenamiento de modelos, lo que permite a los usuarios exportar modelos listos para clústeres de computación en la nube. Además, los gestores de paquetes como Helm ayudan a gestionar aplicaciones complejas de Kubernetes mediante gráficos reutilizables.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora