Glosario

Kubernetes

Descubre cómo Kubernetes agiliza los flujos de trabajo de la IA, permitiendo un escalado sin fisuras, autorreparación y despliegue eficiente de modelos para la computación nativa en la nube.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

Kubernetes es una plataforma de orquestación de contenedores de código abierto diseñada para automatizar el despliegue, escalado y gestión de aplicaciones en contenedores. Desarrollado originalmente por Google, Kubernetes es mantenido ahora por la Cloud Native Computing Foundation (CNCF) y se ha convertido en el estándar del sector para gestionar cargas de trabajo modernas y nativas de la nube.

Características principales de Kubernetes

Kubernetes proporciona una amplia gama de funciones que simplifican la gestión de aplicaciones complejas en entornos distribuidos:

  • Orquestación de contenedores: Kubernetes programa y gestiona automáticamente los contenedores en un clúster de máquinas, garantizando una utilización óptima de los recursos.
  • Escalado: Kubernetes admite el escalado manual y automático de aplicaciones basado en CPU, memoria o métricas personalizadas.
  • Autocuración: Supervisa la salud de las aplicaciones y reinicia o sustituye automáticamente los contenedores averiados para mantener la estabilidad del sistema.
  • Equilibrio de carga: Kubernetes distribuye el tráfico de red entre varios contenedores para garantizar una alta disponibilidad y un rendimiento fiable.
  • Gestión del almacenamiento: Admite varios backends de almacenamiento, como almacenamiento local, almacenamiento basado en la nube y sistemas de archivos de red, para satisfacer las necesidades de las aplicaciones.

Para una introducción a la contenedorización, consulta la página del glosario Docker.

Kubernetes en IA y Aprendizaje Automático

Kubernetes desempeña un papel fundamental en los flujos de trabajo de IA y aprendizaje automático, en los que es esencial gestionar tareas distribuidas que consumen muchos recursos. Simplifica el despliegue de sistemas complejos, como las cadenas de aprendizaje automático, garantizando la escalabilidad y la fiabilidad.

Ejemplo 1: Entrenamiento de un modelo de aprendizaje automático

Kubernetes puede utilizarse para gestionar el entrenamiento distribuido de modelos de aprendizaje automático en múltiples nodos habilitados para GPU. Por ejemplo, un equipo que entrene un modelo de aprendizaje profundo utilizando PyTorch puede desplegar sus trabajos de entrenamiento como pods de Kubernetes. Esto garantiza una asignación eficiente de los recursos y permite escalar los procesos de formación dinámicamente en función de los requisitos de la carga de trabajo. Más información sobre el entrenamiento distribuido y cómo lo facilita Kubernetes.

Ejemplo 2: Despliegue del modelo

Kubernetes se utiliza ampliamente para desplegar modelos de aprendizaje automático en producción. Por ejemplo, un modelo de detección de objetos entrenado con Ultralytics YOLO puede contenerizarse y desplegarse en Kubernetes. Esta configuración garantiza una alta disponibilidad mediante funciones como las actualizaciones continuas y la replicación, que minimizan el tiempo de inactividad y mantienen la fiabilidad del servicio.

Kubernetes frente a tecnologías relacionadas

Mientras que Kubernetes destaca en la orquestación de contenedores, tecnologías como Docker se centran en la propia contenerización. Docker proporciona la base para crear y ejecutar contenedores, mientras que Kubernetes orquesta y gestiona estos contenedores a escala. Para una comprensión más profunda, explora la diferencia entre contenerización y orquestación.

Otro concepto relacionado es la informática sin servidor, que abstrae por completo la gestión de la infraestructura. A diferencia de Kubernetes, las plataformas sin servidor escalan automáticamente los recursos basándose en activadores basados en eventos, sin intervención del usuario. Más información sobre la informática sin servidor.

Aplicaciones en el mundo real

Kubernetes se utiliza en varios sectores para mejorar la eficacia de los flujos de trabajo de IA y aprendizaje automático:

  • Sanidad: Kubernetes permite el despliegue de modelos de análisis de imágenes médicas, como los descritos en análisis de imágenes médicas, garantizando la escalabilidad y la fiabilidad en el procesamiento de grandes conjuntos de datos.
  • Vehículos autónomos: Kubernetes soporta el despliegue escalable de aplicaciones en pipelines de vehículos autónomos, como los descritos en IA para coches autoconducidos.
  • Comercio minorista: En el comercio minorista, Kubernetes impulsa modelos de detección de objetos en tiempo real como Ultralytics YOLO para optimizar la gestión del inventario y mejorar la experiencia del cliente.

Primeros pasos con Kubernetes

Para los interesados en aprovechar Kubernetes para proyectos de IA, herramientas como Ultralytics HUB se integran bien con Kubernetes para un entrenamiento y despliegue de modelos sin fisuras. Además, plataformas como Google Kubernetes Engine (GKE) y Amazon Elastic Kubernetes Service (EKS) simplifican la gestión de clústeres Kubernetes.

Para saber más sobre el despliegue de modelos de IA a escala, explora la guía de opciones de despliegue de modelos.

Kubernetes permite a las organizaciones gestionar y escalar cargas de trabajo de IA con eficacia, convirtiéndolo en una piedra angular de la informática moderna nativa de la nube. Su sólido conjunto de funciones y su adopción generalizada garantizan que seguirá siendo una herramienta vital para la comunidad de IA y aprendizaje automático.

Leer todo