Headlamp est une interface web Kubernetes extensible via un système de plugins, projet CNCF Sandbox développé par Kinvolk (acquis par Microsoft). Elle propose un dashboard cluster complet (Pods, Deployments, Services, RBAC, Events, logs…) accessible depuis un navigateur, et se distingue de ses concurrents par son architecture de plugins React qui permet d'enrichir l'interface avec des vues métier personnalisées. Headlamp peut tourner comme application desktop (Electron) ou comme service déployé dans le cluster.
Informations essentielles
Origine : Kinvolk / Microsoft → CNCF → Kubernetes SIG UI · Licence : Apache 2.0 · Architectures : x86_64, ARM64
Liens : Site officiel · Documentation · GitHub · Releases
Support : CNCF Sandbox. Sous-projet officiel Kubernetes SIG UI depuis mai 2025. Releases régulières.
Stack par défaut
| Composant | Valeur |
|---|---|
| Frontend | React + TypeScript |
| Backend | Go (proxy vers l'API K8s) |
| Plugins | React (chargés dynamiquement) |
| Déploiement | Application desktop (Electron) ou Pod K8s |
| Auth | kubeconfig, OIDC, Service Account |
Prérequis
| Ressource | Valeur |
|---|---|
| Kubernetes | 1.21+ |
| Accès cluster | kubeconfig ou OIDC |
| Helm (déploiement cluster) | 3.x |
Installation
Application desktop (recommandé pour usage local)
# Linux AppImage
curl -Lo headlamp.AppImage \
https://github.com/kubernetes-sigs/headlamp/releases/latest/download/Headlamp-linux-x86_64.AppImage
chmod +x headlamp.AppImage && ./headlamp.AppImage
# macOS
brew install headlamp
# Windows
# Télécharger le .exe depuis https://github.com/kubernetes-sigs/headlamp/releases
Déploiement dans le cluster (accès web partagé)
helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
helm repo update
helm install headlamp headlamp/headlamp \
--namespace headlamp --create-namespace
# Accéder à l'UI
kubectl port-forward svc/headlamp -n headlamp 8080:80
# Ouvrir http://localhost:8080
Vérification de l'installation
# Vérifier le pod
kubectl get pods -n headlamp
# headlamp-* doit être Running (1/1)
# Obtenir un token de connexion
kubectl create token headlamp --duration=24h -n headlamp
# Coller ce token dans l'interface de connexion Headlamp
Utilisation
Connexion avec kubeconfig (desktop)
L'application desktop lit automatiquement ~/.kube/config et liste les contextes disponibles. Cliquer sur un contexte pour se connecter.
Connexion par token (cluster déployé)
# Créer un ServiceAccount avec les droits nécessaires
kubectl create serviceaccount headlamp-user -n headlamp
kubectl create clusterrolebinding headlamp-user \
--clusterrole=cluster-admin \
--serviceaccount=headlamp:headlamp-user
# Générer un token
kubectl create token headlamp-user -n headlamp --duration=8760h
Plugins
Headlamp dispose d'un catalogue de plugins installables depuis l'UI (Settings → Plugin Catalog) ou via la configuration Helm :
# helm values.yaml (exemple - consulter le catalogue pour les noms exacts)
config:
pluginPackages:
- name: "@headlamp-k8s/headlamp-plugin-prometheus"
version: "latest"
Mise à jour
# Desktop - télécharger la nouvelle version
# Cluster
helm repo update
helm upgrade headlamp headlamp/headlamp \
--namespace headlamp \
--reuse-values
# Note : utiliser https://kubernetes-sigs.github.io/headlamp/ comme repo URL
Ressources
- Site officiel : https://headlamp.dev
- Documentation : https://headlamp.dev/docs/
- Catalogue de plugins : https://headlamp.dev/docs/latest/installation/plugins/
- GitHub : https://github.com/kubernetes-sigs/headlamp
- Releases : https://github.com/kubernetes-sigs/headlamp/releases