Kubernetes, câest dur đ
VoilĂ quelque chose quâon entend Ă longueur de journĂ©e. Jâen ai dĂ©jĂ parlĂ©, Kubernetes est un outil « modĂ©rĂ©ment » complexe. Oui, câest un outil complet (et pas complexe) avec une terminologie riche qui lui est propre.
Au delĂ de la fausse promesse que certains lui attribue (permettre aux Dev de sâĂ©manciper totalement des Ops, jâen parle dans lâarticle « au secours, le mĂ©tier dâOps va disparaĂźtre« ), il y a un vrai problĂšme de vocabulaire et de concepts qui ne sont pas Ă©vidents pour les dĂ©butants.
Pour faciliter lâadoption, jâai remarquĂ© que beaucoup de gens qui dĂ©butent dans kube sâaident dâenvironnement (souvent graphiques, mais pas forcĂ©ment) permettant dâinteragir avec les objets logiques de Kubernetes de maniĂšre « simple ».
Car, bizarrement, tout le monde nâaime pas Ă©crire des tonnes de lignes de commandes (ou pire des calls dâAPI) et des tartines de YAML Ă longueur de journĂ©e… Jâcomprend pas.
Comme je suis quelquâun de sympa, jâai donc testĂ© pour vous tous les outils, graphiques ou non, que jâai pu trouver, pour vous faire un petit guide et vous donner mes impressions.
Vous ĂȘtes prĂȘts ?
Alors câest parti !
Dans ce premier épisode (qui en comportera 3, je vous laisse deviner les deux autres), je me suis concentré sur les WebUI.
Kubernetes UI (officielle)
Site : https://kubernetes.io/fr/docs/tasks/access-application-cluster/web-ui-dashboard/
Sources : https://github.com/kubernetes/dashboard
Franchement au dĂ©but je voulais prendre le parti de NE PAS parler de la WebUI officielle. Je ne lâaime pas, depuis longtemps.
Je la trouvais limitĂ©e, au dĂ©but elle Ă©tait buguĂ©e, les messages dâerreur Ă©taient tout sauf explicites, … Les CRDs nâĂ©taient pas du tout gĂ©rĂ©es et mĂȘme les objets officiels de lâAPI de Kubernetes nâĂ©taient pas tous reprĂ©sentĂ©s, rendant tout diagnostic poussĂ© impossible.
Si câest pour faire du kubectl de toute façon, autant ne pas perdre de temps Ă mâauthentifier sur la WebUI.
Elle Ă©tait souvent dĂ©ployĂ©e un peu par dĂ©faut dans les dĂ©buts de Kubernetes et souvent mal sĂ©curisĂ©e (par les utilisateurs) ce qui a conduit Ă de nombreux piratages. Les cloud providers ne lâactivent plus par dĂ©faut pour cette raison (voire mĂȘme, certains le dĂ©conseillent).
Cependant, jâai rĂ©essayĂ© la V2 et il faut reconnaĂźtre que les choses se sont amĂ©liorĂ©es. Les CRDs sont correctement prise en charge, notamment.
Octant (VMware)
Site : https://octant.dev
Sources : https://github.com/vmware-tanzu/octant
Un projet qui me tient Ă cĆur est la solution de WebUI de VMware.
Je dis WebUI, mais uniquement parce que lâUI est lancĂ©e dans un navigateur. Mais ce nâest pas un serveur web Ă exposer h24 comme lâUI officielle. Câest dâailleurs pour ça que câest « plus sĂ©cure ». LâUI nâest lancĂ©e que localement sur le poste de lâutilisateur, Ă la demande, avec les privilĂšges de lâutilisateur (et rien de plus).
Elle sert dâUI pour Tanzu (le Kubernetes Ă la sauce VMware) mais pas que, ce qui explique je pense lâeffort quâils y mettent (il faut bien se diffĂ©rencier).
Pour lâavoir pas mal utilisĂ©e, câest fiable et pratique. Câest aussi assez simple Ă installer, VMware mettant Ă disposition sur Github des archives et des packages systĂšmes :
Et voilĂ Ă quoi lâUI ressemble. On retrouve des menus oĂč sont regroupĂ©s les diffĂ©rentes vues sur la gauche, puis on navigue de ressource en ressource via les liens hypertexte. On peut faire des recherches par filtres, …
Dans les plus que jây vois, câest assez intuitif, on est pas perdu. Le principe est relativement similaire Ă lâUI officielle, mĂȘme si lâorganisation des menus est diffĂ©rentes. Un point noir, le texte est par dĂ©faut trĂšs petit, et des menus trĂšs riches (beaucoup de cadres, beaucoup de texte).
LâUI offre des fonctionnalitĂ©s supplĂ©mentaires par rapport Ă lâUI officielle, comme lâaffichage des logs streamĂ©s, le port-forward dâun pod via un click, qui vous lance votre application dans un nouvel onglet de navigateur (hyper pratique). Tout est filtrable, notamment par labels.
Les CRDs sont correctement gĂ©rĂ©es depuis longtemps (mais câest aussi le cas dans lâUI officielle maintenant).
Le produit met Ă©galement en avant son cĂŽtĂ© extensible avec plusieurs modules complĂ©mentaires permettant dâĂ©tendre les fonctionnalitĂ©s de base. Je nâai pas essayĂ© cette possibilitĂ©.
Skooner (ex-K8dash) (Indeed)
Développé pour les besoins internes de Indeed, cette WebUI se veut plus simple dans son look que la WebUI officielle.
Site : Blog post sur le tech blog de Indeed Engineering
Sources : https://github.com/indeedeng/k8dash / https://github.com/skooner-k8s/skooner
Vidéo démo : https://www.youtube.com/watch?v=u-1jGAhAHAM
Les fonctionnalitĂ©s mises en avant sont une installation simple (ça se dĂ©ploie dans Kubernetes, effectivement câest pas super complexe), une UI mise Ă jour en temps rĂ©el (pas de reload de la page web) et une authentification OIDC intĂ©grĂ©e. Les objets sont filtrables.
Au delĂ de lâinstallation simple et de lâintĂ©rĂȘt rĂ©el pour lâajout de lâOIDC out of the box, je ne vois pas bien ce quâelle apporte… Oui, le look est plus lĂ©chĂ© et il y a un gouvernail qui tourne (youpi). Oui ça se reload tout seul en temps rĂ©el.
Mais bon… question de goĂ»t, jâimagine ?
Et plus si affinitĂ©…
Bon là , niveau WebUI on est déjà bien.
Si jamais vous nâavez toujours pas trouvĂ© votre bonheur, le mieux, câest certainement dâattendre le prochain Ă©pisode (car aprĂšs les WebUI, on a vraiment du lourd qui arrive pour les prochains Ă©pisodes :-p).
Et en attendant, have fun :)