Headlamp: La interfaz moderna para Kubernetes
Si trabajas a diario con Kubernetes, estarás acostumbrado a la línea de comandos y a usar el comando kubectl, como si no hubiese un mañana. Sin embargo, a medida que el número de microservicios, despliegues y namespaces crece, a veces se echa en falta una vista de pájaro que nos permita identificar problemas de un vistazo, sin acabar con fatiga visual.
Hoy os hablo de Headlamp, una interfaz de usuario (UI) para Kubernetes que está ganando mucha fama últimamente por ser ligera, potente y, sobre todo, mucho más flexible que otros productos, como el oficial. Si conoces Portainer para Docker, te resultará familar su funcionamiento, pero en este caso para Kube.

Logo oficial de HeadLamp
¿Qué es Headlamp?
Headlamp es una consola web para gestionar Kubernetes, nacida bajo el paraguas de la CNCF (Cloud Native Computing Foundation) como proyecto de «sandbox», desarrollada originalmente por la gente de Kinvolk (ahora parte de Microsoft). A pesar de que esto te pueda crear suspicacia, este proyecto utiliza una licencia Apache 2.0, por lo que se puede considerar software libre y sigue la filosofia de desarrollo del código abierto.
A diferencia de otras soluciones que intentan ser un «todo en uno» pesado, Headlamp se mantiene fiel a la filosofía Unix: haz una cosa y hazla bien. Ofrece una visión clara de lo que ocurre en nuestros clúster, pero con una capacidad de personalización mediante plugins que lo hace destacar frente a otras alternativas como Lens o el Dashboard estándar.
Principales características que marcan la diferencia
- Gestión multi-clúster: Puedes gestionar varios clústeres desde una única instancia de forma sencilla.
- Extensibilidad mediante Plugins: Esta es una gran opción disponible. Puedes añadir funcionalidades a la UI usando JavaScript, adaptando la herramienta a las necesidades específicas de tu equipo o de tu infraestructura.
- Independiente del despliegue: Puedes ejecutarlo como una aplicación de escritorio (Linux, Mac, Windows) o desplegarlo directamente dentro de tu clúster como un pod más.
- Enfoque en la lectura y edición: No solo sirve para mirar. Puedes editar recursos YAML directamente desde la interfaz, ver los logs de los pods en tiempo real y ejecutar terminales interactivas.
- RBAC Friendly: Respeta escrupulosamente el Control de Acceso Basado en Roles de Kubernetes. Lo que el usuario no puede hacer en la terminal, no lo podrá hacer en Headlamp.
En los siguientes apartados veremos las dos formas de utilizarlo, la primera es dentro del propio clúster para luego acceder vía web; la segunda, instalar un cliente de escritorio.
Difererentes manera de utilizar Headlamp
Instalación rápida en nuestro clúster
Para los que preferís tenerlo corriendo en el propio clúster, la forma más limpia es mediante Helm. Aquí os dejo los comandos rápidos para levantarlo en un momento.
Primero añadimos el repositorio de Helm
helm repo add headlamp https://kinvolk.github.io/headlamp
Actualizamos los repositorios:
helm repo update
Una vez hecho esto, instalamos:
helm install my-headlamp headlamp/headlamp \ --namespace headlamp \ --create-namespace
Una vez instalado, podemos acceder mediante un port-forward o configurando un Ingress, por ejemplo:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: headlamp-ingress namespace: headlamp annotations: # Si usas Nginx Ingress Controller: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/ssl-redirect: "false" spec: rules: - host: headlamp.bitsandlinux.com http: paths: - path: / pathType: Prefix backend: service: name: my-headlamp port: number: 80
También podemos utilizar HTTP Envoy Gateway, del que hablé no hace mucho. En este caso el YAML sería:
apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: ruta-headlamp namespace: kube-system spec: parentRefs: - name: gateway-red-local namespace: envoy-gateway-system hostnames: - "headlamp.bitsandlinux.com" #Es un ejemplo rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: my-headlamp port: 80
Para acceder vía web, os pedirá un Token. Podéis crear un ServiceAccount con los permisos necesarios para obtenerlo o simplemente:
kubectl create token my-headlamp --namespace headlampAunque, para tener todos los servicios en el clúster, debemos seguir estas instrucciones: https://headlamp.dev/docs/latest/installation/
De esta manera ya estará accesible.

Un vistazo de mi clúster, visto desde la web de HeadLamp
Instalar la herramienta de escritorio
Además de su despliegue en el clúster, también se ofrece una versión de escritorio compatible con GNU/Linux, macOS y Windows. Esta variante es ideal para administradores que gestionan múltiples entornos, ya que permite la conexión simultánea a diversos clústeres. La aplicación detecta automáticamente los archivos de configuración de Kubernetes locales (como el habitual en ~/.kube/config), permitiendo cargar y alternar entre diferentes contextos con un solo clic, manteniendo una experiencia de usuario fluida y centralizada sin necesidad de exponer servicios web internos. La guía oficial la tenéis aquí, en la parte del cliente de escritorio: https://headlamp.dev/docs/latest/installation/desktop/

Tenemos muchas vistas, cómo ver las cargas de trabajo
¿Por qué elegir Headlamp frente a otros?
En el mundo del software libre, la libertad de elección es clave. Si bien el Dashboard oficial es el estándar, suele ser algo rígido. Por otro lado, herramientas como Lens se han vuelto algo más pesadas y con modelos de licencia que pueden no encajar con todos.
Headlamp para mi tiene ventajas clave: es software libre, visualmente es muy limpio (Material Design) y no intenta esconder Kubernetes bajo capas de abstracción innecesarias (¡por favor!). Si ves un error en un Deployment, Headlamp te muestra el evento exacto, tal como lo verías en un kubectl describe
Conclusión
Si buscas una herramienta que te dé visibilidad sin complicarte la vida, dale una oportunidad a Headlamp. Es ideal tanto para desarrolladores que quieren ver sus logs sin recordar comandos largos, como para administradores de sistemas que necesitan monitorizar el estado de salud de los nodos de forma rápida.
Como siempre, la mejor forma de saber si encaja en tu flujo de trabajo es ensuciándose las manos y probándolo.
Si a pesar de todo lo que te he explicado, te sigue gustando dejarte la vista en la consola de comandos, quizás te interese esta entrada: k9s: Kubernetes CLI con estilo!
¡Nos leemos en la próxima!


Comentarios Recientes