Glosario

Kubernetes

Descubra cómo Kubernetes agiliza las cargas de trabajo de IA/ML con el despliegue escalable de modelos, la formación distribuida y la gestión eficiente de recursos.

Kubernetes, a menudo abreviado como K8s, es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, el escalado y la gestión de aplicaciones en contenedores. Desarrollado originalmente por Google y mantenido ahora por la Cloud Native Computing Foundation (CNCF), Kubernetes proporciona un marco sólido para ejecutar sistemas distribuidos y resistentes. En el contexto de la Inteligencia Artificial (IA) y el Aprendizaje Automático(AM), se ha convertido en una herramienta esencial para gestionar todo el ciclo de vida de los modelos de AM, desde la formación hasta el despliegue en entornos de producción.

Cómo funciona Kubernetes

Kubernetes funciona en un clúster de máquinas, que pueden ser servidores físicos o máquinas virtuales, locales o en la nube. Los componentes principales incluyen:

  • Clúster: Conjunto de nodos (máquinas trabajadoras) que ejecutan aplicaciones en contenedores.
  • Nodo: Una máquina de trabajo en un clúster Kubernetes. Cada nodo ejecuta un Kubelet, que es un agente para gestionar el nodo y comunicarse con el plano de control.
  • Pod: La unidad más pequeña y simple del modelo de objetos de Kubernetes. Un Pod representa una única instancia de un proceso en ejecución en un clúster y puede contener uno o más contenedores, como contenedores Docker.
  • Despliegue: Gestiona un conjunto de réplicas de Pods, asegurando que un número especificado de ellos se ejecutan en todo momento. Gestiona las actualizaciones y las reversiones automáticamente.

Al abstraer el hardware subyacente, Kubernetes permite a los desarrolladores e ingenieros de MLOps definir el estado deseado de su aplicación, y trabaja para mantener ese estado, gestionando los fallos y las necesidades de escalado automáticamente. Puede obtener más información en la documentación oficial de Kubernetes.

Kubernetes en IA y aprendizaje automático

Kubernetes es especialmente potente para las operaciones de aprendizaje automático (MLOps ), ya que aborda muchos de los retos asociados a la creación y el despliegue de sistemas de IA a escala. Su capacidad para gestionar los recursos de forma eficiente lo hace ideal para tareas que requieren muchos recursos, como la formación de modelos. Kubernetes puede escalar los trabajos de formación en varias GPU y nodos, lo que reduce significativamente el tiempo de formación.

Por inferencia, Kubernetes garantiza una alta disponibilidad y escalabilidad. He aquí un par de ejemplos del mundo real:

  1. Servicio escalable de detección de objetos: Una empresa despliega un modelo YOLO11 de Ultralytics para la detección de objetos en tiempo real como servicio web. El modelo se empaqueta en un contenedor. Gracias a Kubernetes, pueden ampliar o reducir automáticamente el número de nodos de inferencia en función del tráfico entrante. Si falla un nodo, Kubernetes reprograma automáticamente los pods en nodos sanos, garantizando que el servicio siga disponible sin intervención manual. Se trata de un patrón habitual para desplegar modelos en sistemas de vigilancia inteligentes.
  2. Complejo NLP Pipeline como Microservicios: Un equipo crea una aplicación de procesamiento del lenguaje natural (PLN ) que incluye varios pasos: preprocesamiento de texto, análisis de sentimientos y reconocimiento de entidades con nombre. Cada componente es un microservicio separado, en contenedores independientes. Kubernetes orquesta estos servicios, gestionando su interconexión y permitiendo que cada parte se actualice y escale de forma independiente. Esta arquitectura proporciona flexibilidad y resistencia para aplicaciones complejas basadas en IA.

Kubernetes frente a tecnologías relacionadas

  • Kubernetes frente a Docker: Docker es una herramienta para construir y ejecutar contenedores individuales. Kubernetes es un orquestador de contenedores que gestiona miles de ellos en muchas máquinas. No son competidores sino colaboradores; se construyen imágenes de contenedores con Docker y luego se gestionan con Kubernetes. Puedes empezar con lo básico siguiendo la guía Docker Quickstart.
  • Kubernetes frente a la informática sin servidor: Las plataformas sin servidor como AWS Lambda eliminan toda la gestión de servidores. Por el contrario, Kubernetes ofrece más control sobre la infraestructura, por lo que es mejor para aplicaciones de larga duración o con estado. Mientras que la computación sin servidor es más sencilla para funciones basadas en eventos, los marcos de trabajo sin servidor pueden ejecutarse en Kubernetes mediante herramientas como Knative.

Herramientas y ecosistema

El ecosistema de Kubernetes es muy amplio e incluye muchas herramientas para ampliar su funcionalidad:

  • Helm: A menudo llamado el gestor de paquetes de Kubernetes, Helm le ayuda a gestionar las aplicaciones de Kubernetes.
  • Prometheus y Grafana: Una combinación popular para supervisar clústeres y aplicaciones Kubernetes.
  • Integraciones con proveedores de la nube: Los principales proveedores en la nube ofrecen servicios gestionados de Kubernetes, como Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) y Azure Kubernetes Service (AKS), que simplifican la configuración y el mantenimiento de los clústeres.
  • Plataformas de ML: Herramientas como Kubeflow se basan en Kubernetes para proporcionar flujos de trabajo específicos de ML para pipelines, formación y despliegue. Plataformas como Ultralytics HUB agilizan el proceso de MLOps, a menudo abstrayéndose de las complejidades de Kubernetes para facilitar el despliegue de modelos.

Únase a la comunidad Ultralytics

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

Únete ahora
Enlace copiado en el portapapeles