8 outils pour manipuler et visualiser vos clusters Kubernetes

Rédigé par Nathanaël Hannebert le 12/03/2024
Temps de lecture: 4 minutes

Je vous propose aujourd’hui de faire un tour des nombreuses solutions de gestion de clusters Kubernetes. Nous verrons dans cette liste une majorité d’outils présentant une interface graphique (GUI), et quelques autres en TUI (Terminal User Interface) ou en CLI (Command Line Interface).

kubectl

Avant de parler d’outils tiers, je tiens à rappeler que l’outil officiel pour contrôler un cluster Kubernetes est kubectl. Il me semble important d’en parler dans cet article, car je recommande à toute personne susceptible d’utiliser Kubernetes d’en connaître le fonctionnement de base. Cet outil en ligne de commande a une sémantique cohérente : kubectl + verbe + objet + options. L’aide est toujours accessible avec l’option --help et donne des explications claires, et de nombreux exemples.

Connaître kubectl permet d’accéder à un cluster Kubernetes en toute circonstance, et pourra être nécessaire si les applications GUI auxquelles nous sommes parfois habitués ne sont pas disponibles, par exemple sur un environnement de production accessible seulement en ligne de commande via une console web.

k9s

k9s ne propose pas une GUI, mais une TUI, une interface semi-graphique, dans le terminal. Je l’inclus dans cette liste, car c’est un outil extrêmement complet, et très utilisé. Sa prise en main demande un petit effort, qui vaut le coup ! Je vous encourage à l’essayer.

Liste des pods dans k9s

https://github.com/derailed/k9s

KDash

KDash est une autre application en TUI, écrite en Rust. Je l’ai découverte en faisant mes recherches pour cet article. Il s’agit d’une application qui ne propose que de la visualisation (get, list, watch) et qui cherche à être rapide est pratique.

KDash only offers a view of the resources with a focus on speed and UX. Really, if something is slow or has bad UX then please raise a bug. Hence the UI/UX is designed to be more user-friendly and easier to navigate with contextual help everywhere and a tab system to switch between different resources easily.

KDash en action

https://github.com/kdash-rs/kdash

Lens, OpenLens, Lens Desktop

Lens est une application de bureau qui propose une GUI parmi les plus agréables pour la gestion de plusieurs clusters Kubernetes. L’interface est très claire, fluide et intuitive. Il s’agit d’une application basée sur Electron (un framework embarquant le moteur du navigateur Chrome pour développer des applications de bureaux avec les technologies du Web), disponible pour Mac, Linux et Windows. D’abord libre et open-source, ce qui avait permis l’émergence d’OpenLens une version ne nécessitant aucun compte utilisateur, elle a été renommée en Lens Desktop et est devenue depuis une application propriétaire, éditée par Mirantis.

C’est l’application que j’utilise au quotidien et je regrette qu’elle passe sur un modèle propriétaire.

OpenLens

https://github.com/lensapp/lens

https://github.com/MuhammedKalkan/OpenLens/

Headlamp

Headlamp est une application pour bureau basée sur Electron, mais peut aussi être installée au sein même d’un cluster Kubernetes. Son utilisation est intuitive, l’interface est fluide et ressemble à ce que je connais de Lens. Cela pourrait bien être une alternative. De plus, le projet semble porté par des contributeurs d’horizons variés, et est adossé à la CNCF comme sandbox project.

Headlamp - liste des pods
Headlamp - détails d’un pod

https://github.com/headlamp-k8s/headlamp

Seabird

Seabird est un nouvel arrivant avec une belle ambition : proposer une application native, rapide et élégante. Elle est écrite en Go+GTK4 et est disponible sur Mac, Linux et Windows. Seabird est disponible au téléchargement, le code source est libre, mais son développeur précise que c’est “un logiciel payant avec une période d’essai illimitée”. Cette application me semble trop récente pour un usage quotidien, mais son évolution rapide est à suivre !

Seabird v0.1.1

https://github.com/getseabird/seabird/

kubenav

Voilà l’application idéale pour piloter des clusters Kubernetes depuis des smartphones ou tablettes iOS et Android. Avec kubenav, nous disposons d’une interface adaptée aux mobiles. Cette application étant développée en Flutter, elle est aussi proposée pour bureau (Mac, Linux, Windows). Cependant, son interface mériterait quelques adaptations pour les grands écrans. kubenav sur iOS

https://github.com/kubenav/kubenav

Kubernetes Dashboard

Une interface web à déployer au sein du cluster Kubernetes que nous souhaitons gérer. Cette application a le gros avantage d’être portée par la communauté Kubernetes et peut revendiquer un statut plus officiel. Je trouve cependant que l’usage n’est pas le plus pratique : je préfère les applications autonomes, qui utilisent le fichier kubeconfig présent sur mon poste, à cette application qui nécessite d’être installée dans chaque cluster, et qui a besoin d’un peu de configuration pour s’authentifier.

Kubernetes Dashboard

https://github.com/kubernetes/dashboard

Autres

Il y a d’autres applications qui peuvent permettre de disposer d’une interface graphique pour Kubernetes, mais puisque ce n’est pas leur fonctionnalité première, je trouve qu’elles sont trop loin du sujet de cet article. Cependant, afin d’ouvrir la discussion, et les ayant vues dans mes recherches, je les note simplement ici :

  • Rancher
  • Portainer
  • Kubeapps
  • devtron.ai

Pour conclure, je peux vous dire que j’utilise toujours OpenLens, mais que je surveille de près le développement de Seabird et que j’envisage de soutenir son développeur. Et vous ? Quels outils utilisez-vous et quels sont vos retours d’expérience sur le sujet ? J’aimerais que cet article soit l’occasion d’engager la discussion, vos commentaires seront les bienvenus sur les différents réseaux, X (Twitter) et Linkedin.