Blog · 09

Un controlador de Kubernetes que drena, repara o pone en cuarentena nodos GPU

Primer laboratorio de GPU: los XID, el ECC y la temperatura llevan cada nodo por una máquina de estados.

Por qué este laboratorio

Viene de la operación de hardware: validar y certificar servidores, y automatizar la detección y la reparación de fallos de hardware. Es el primero de una serie de laboratorios que lleva eso a las flotas de GPU. Funciona con GPU simuladas, así que cualquiera puede reproducirlo en un portátil.

Qué he hecho

Un controlador de Kubernetes en Go (solo librería estándar, sin client-go) que lee métricas DCGM (errores XID, ECC de doble bit, row remapping, temperatura) y lleva cada nodo por Healthy → Draining → Repairing → Validating → Healthy, o a Cordoned por temperatura, o a Quarantined.

  • El estado vive en anotaciones del nodo, con un presupuesto de nodos en remediación (max-unavailable).
  • Las evicciones respetan los PodDisruptionBudget y la validación es un Job fijado al nodo con todas sus GPU.
  • Regla de reincidencia, modo dry-run, eventos y métricas de Prometheus.
  • La política de XID se basa en la documentación de NVIDIA (docs/xid-policy.md).

Cómo se prueba

Un simulador gpu-sim hace de dcgm-exporter. La CI pasa tests unitarios, shellcheck y una prueba de punta a punta en kind con 8 escenarios (28 comprobaciones), en verde a la primera. Hay además un modo gpuremediate check que usa nvidia-smi en una GPU real.

Siguientes pasos

  • En un clúster con GPU, desplegar dcgm-exporter en lugar del simulador.
  • Empezar en modo dry-run y fijar el presupuesto de nodos en reparación (max-unavailable).
  • gpuremediate check funciona en cualquier máquina con nvidia-smi, también en un puesto Windows.

¿Quieres llevarlo a tu entorno o adaptarlo a tu caso? Escríbeme y lo vemos.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →