Herramienta de línea de comandos que instala K3s Kubernetes por SSH en una VM local o remota y obtiene un kubeconfig para acceder con kubectl.
Project-HAMi/HAMi
Middleware de Kubernetes que comparte GPU y otros aceleradores de IA entre pods según la memoria y la capacidad de cómputo, con planificación adaptada a cada dispositivo.
- Estrellas
- 4,896
- Forks
- 872
- Issues abiertos
- 33
- Último commit
- hace 9 horas
¿Qué es?
HAMi (Heterogeneous AI Computing Virtualization Middleware, antes k8s-vGPU-scheduler) permite a los equipos de plataforma compartir GPU costosas y otros aceleradores de IA entre cargas de trabajo de Kubernetes. Los pods solicitan una fracción de un dispositivo según la memoria o la cantidad de núcleos, mediante los límites de recursos estándar de Kubernetes, por lo que las aplicaciones no necesitan cambios en el código.
Está compuesto por un webhook mutante, un scheduler extender, plugins de dispositivo y componentes de virtualización dentro de los contenedores. La planificación admite políticas binpack, spread, con reconocimiento de topología, mutex y NUMA; además, las instancias NVIDIA MIG se pueden crear y liberar dinámicamente. Entre los backends compatibles están NVIDIA, AMD, Huawei Ascend, Cambricon, Hygon, Iluvatar, Kunlunxin, MetaX, Moore Threads y otros.
La instalación se realiza mediante Helm, con réplicas opcionales del scheduler para alta disponibilidad, métricas de Prometheus y una WebUI complementaria. Es un proyecto CNCF Incubating.
Funciones clave
- 01Comparte GPU según los límites de memoria y núcleos mediante las solicitudes de recursos estándar de Kubernetes.
- 02Planifica pods con políticas binpack, spread, con reconocimiento de topología, mutex y NUMA.
- 03Admite NVIDIA MIG con gestión dinámica de instancias.
- 04Es compatible con aceleradores de varios fabricantes, incluidos Ascend, Cambricon, Hygon y MetaX.
- 05Expone métricas de Prometheus y ofrece una WebUI y dashboards de Grafana.
Casos de uso
- Aumentar el uso de las GPU en clústeres de IA compartidos de Kubernetes.
- Ejecutar cargas de trabajo multiusuario de notebooks, entrenamiento e inferencia en un mismo grupo de aceleradores.
- Crear plataformas privadas de IA en la nube con control de cuotas para la asignación de dispositivos.
- Operar clústeres de aceleradores de distintos fabricantes con un único flujo de planificación.
Inicio rápido
- 1
Etiqueta los nodos GPU para que HAMi pueda administrarlos
kubectl label nodes <node-name> gpu=on - 2
Añade el repositorio de Helm de HAMi
helm repo add hami-charts https://project-hami.github.io/HAMi/ - 3
Instala HAMi con Helm en kube-system
helm install hami hami-charts/hami -n kube-system - 4
Comprueba que hami-device-plugin y hami-scheduler estén en estado Running
kubectl get pods -n kube-system
Antes de usarlo
- Necesitas un clúster de Kubernetes con Helm. Para usar la opción de NVIDIA, también necesitas los controladores de NVIDIA y el toolkit de contenedores.
- Para que resulte útil, los nodos del clúster deben tener hardware acelerador.
Temas
Preguntas frecuentes
- ¿Qué es HAMi?
- Middleware de Kubernetes que comparte GPU y otros aceleradores de IA entre pods según la memoria y la capacidad de cómputo, con planificación adaptada a cada dispositivo. HAMi (Heterogeneous AI Computing Virtualization Middleware, antes k8s-vGPU-scheduler) permite a los equipos de plataforma compartir GPU costosas y otros aceleradores de IA entre cargas de trabajo de Kubernetes. Los pods solicitan una fracción de un dispositivo según la memoria o la cantidad de núcleos, mediante los límites de recursos estándar de Kubernetes, por lo que las aplicaciones no necesitan cambios en el código.
- ¿HAMi es gratuito? ¿Qué licencia tiene?
- HAMi es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿HAMi sigue mantenido?
- Mantenimiento activo. El último commit de HAMi fue el 21 oct 2026.
- ¿Para qué puedo usar HAMi?
- Aumentar el uso de las GPU en clústeres de IA compartidos de Kubernetes. Ejecutar cargas de trabajo multiusuario de notebooks, entrenamiento e inferencia en un mismo grupo de aceleradores. Crear plataformas privadas de IA en la nube con control de cuotas para la asignación de dispositivos. Operar clústeres de aceleradores de distintos fabricantes con un único flujo de planificación.
- ¿Cómo se instala HAMi?
- Etiqueta los nodos GPU para que HAMi pueda administrarlos: kubectl label nodes <node-name> gpu=on Añade el repositorio de Helm de HAMi: helm repo add hami-charts https://project-hami.github.io/HAMi/ Instala HAMi con Helm en kube-system: helm install hami hami-charts/hami -n kube-system Comprueba que hami-device-plugin y hami-scheduler estén en estado Running: kubectl get pods -n kube-system
- ¿Dónde consigo HAMi?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Project-HAMi/HAMi
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Gateway de API nativo de Kubernetes que implementa Gateway API sobre Envoy y admite casos de uso de gateway para IA.
Consola de gestión para la malla de servicios Istio que visualiza el tráfico, la topología y el estado de la configuración en un clúster de Kubernetes.
Configuración de despliegue con Docker Compose y Kubernetes para alojar Huly, una plataforma de colaboración en equipo de código abierto y todo en uno.
Plataforma cloud-native de código abierto que unifica KVM local, bare metal, vSphere y numerosas nubes públicas mediante un conjunto único de API.
Un operador de Kubernetes que despliega y administra aplicaciones de Ray mediante los recursos RayCluster, RayJob y RayService.