Article

Headlamp vs K8sLens : Comment ce dashboard Kubernetes open source change la donne

đź“š Headlamp, un solide alternatif Ă  k8slens pour manager vos clusters Kubernetes en local.

Contexte :

Depuis l’avènement du dashboard Kubernetes, plusieurs outils ont vu le jour pour faciliter la gestion vos clusters Kubernetes sur votre pc.
Jusque-là, k8slens était le plus avancé et très populaire au sein de la communauté, malheureusement, il est passé de l’autre côté de la force.

K8slens a été acquis par la société Mirantis qui a décidé de fermer les sources et de le rendre payant (ce qui rappel docker également acquis par la même société). La version 6.0.0 de Lens publiée le 28 juillet 2022 a été la dernière version complètement gratuite avec toutes les fonctionnalités.

Mirantis propose une version personnelle gratuite de Lens, mais tout de même avec quelques limitations, voir le modèle de prix

Alternatives Ă  K8slens :

Il existe deux types d’alternatives open source à Lens :

  • A base de la CLI :

    • k9s : open source, courbe d’apprentissage un peu plus Ă©levĂ©e, mais il est très puissant et complet.
      • un article est en cours de rĂ©daction pour expliquer comment l’utiliser (excĂ©llent outil pour les amoureux de k8s et la cli).
    • kdash : open source, mais il est moins puissant que k9s, j’ai fait un tour, mais pas trop aimĂ©, il reste quand en development active.
  • A base d’interface graphique desktop ou web :

    • Open source :
    • kubernetes dashboard qui fait partie du projet kubernetes et est open source (facile Ă  utiliser).
    • Il existe un fork de lens, par Muhammed Kalkan applĂ© openlens qui est open source et gratuit.
      Le problème est que ce fork est à l’arrêt en raison de la fermeture des sources de K8slens comme expliqué dans le readme du dépôt github, il est donc sujet à des bugs et vulnérabilités.
      La dernière version est la v6.5.2-366 en date du 30 juin 2023 (il est préferable de trouver une solution alternative).
      Il reste encore fonctionnel avec quelques menus disparus comme celui permettant de voir les logs ou s’attacher à un pod.
      Pour rajouter ces menus, il suffit d’installer l’extension @alebcay/openlens-node-pod-menu et redemarrer K8s.

    • seabird : open source, mais il reste assez basique et il est en cours de dĂ©veloppement.
    • devtron : projet CNCF plus qu’un simple dashboard pour manager k8s, c’est une plateforme capable de faire du CI/CD avec argo.
    • Headlamp : projet CNCF qui est le sujet de cet article.
    • Payant :

      La plupart des outils suivants sont payants, mais offre aussi des versions communautaires gratuite limitée

C’est quoi headlamp ?

Headlamp est une ui permettant de manager un ou plusieurs clusters kubernetes, gratuit et open source, le projet est en phase de sandboxing au CNCF.
C’est sûre qu’il restera libre et open source et aura beaucoup de support et contribution de la part de la communauté et de la CNCF elle-même.
Le projet est en gains de popularité et le dépôt github comptabilise plus de 2k stars et est en forte adoption par la communauté.

Installation :

Headlamp offre deux options d’installation :

  • Desktop :

    Vous pouvez télécharger le binaire ici en sélectionnant votre système d’exploitation ou utiliser le gestionnaire de packets de votre système.

    • Une fois l’installation terminĂ©e, vous pouvez lancer head comme vos autres applications, si vous aviez choisi l’option desktop.
    • headlamp
  • Sur le cluster kubernetes lui-mĂŞme via un helmchart.

    • PrĂ©requis :
      • un cluster kubernetes : Vous devez dĂ©jĂ  avec un cluster kubernetes pour pouvoir installer headlamp dessus.
      • Helm : est devenu aux furs des annĂ©es l’outil de management de packets pour kubernetes le plus utilisĂ©, un article est en rĂ©daction Ă  ce sujet.
        voir comment installer helm
        • install avec helm :
          • 1
            2
            
                helm repo add headlamp https://headlamp-k8s.github.io/headlamp/
                helm install my-headlamp headlamp/headlamp --namespace kube-system
            
        • vous pouvez voir les pods de headlamp avec
          • 1
            2
            3
            
              kubectl get pods --namespace kube-system -l app.kubernetes.io/instance=my-headlamp
              NAME                           READY   STATUS    RESTARTS   AGE
              my-headlamp-7cb69f6cb7-4qj4k   1/1     Running   0          54s
            
        • Afficher le service k8s de headlamp :
          • 1
            2
            3
            
                kubectl get svc --namespace kube-system -l app.kubernetes.io/instance=my-headlamp
                NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
                my-headlamp   ClusterIP   10.96.252.252   <none>        80/TCP    3m26s
            
        • Activer le port-forwarding sur le port 8080
          • 1
            
                kubectl port-forward --namespace kube-system svc/my-headlamp 8080:80
            
        • Vous pouvez maintenant acceder au dashboard en allant sur l’url suivante : http://localhost:8080
          • headlamp
          • Pour obtenir le token d’authentification de headlamp :
          • 1
            
            kubectl create token headlamp-admin -n kube-system
            
          • Copiez le token et utilisez-le pour vous connecter au dashboard.
            • headlamp
            • On vois qu’avec ce token headlamp-admin, on a pas la possibilitĂ© de voir ou modifier les objects ainsi que d’autres actions.
            • Pour resource ce problème, on vas crĂ©er un clusterrolebinding (qui est l’object kube qui permet d’associer un role Ă  un utilisateur ou un serviceaccount dans notre cas) et lui donner le role de cluster-admin.
            • Kubernetes utilise le mode RBAC (Role Based Access Control) pour autoriser les utilisateurs et les services Ă  acceder aux ressources.
            • 1
              2
              
                kubectl create clusterrolebinding headlamp-admin-sa --clusterrole=cluster-admin --serviceaccount=headlamp-admin
                clusterrolebinding.rbac.authorization.k8s.io/headlamp-admin-sa created
              
            • Actualiser la page de headlamp et on vois que l’on a le droit de voir et modifier les ressources.
            • headlamp

Amusez-vous avec headlamp ⚡️!

Références

This post is licensed under CC BY 4.0 by the author.