Kubernetes a largement pris le dessus aujourd’hui sur le monde de la production. Des plus petites PME aux plus grandes multinationales, tout le monde finit par y passer, et à raison. En même temps, quand on parle de gestion de conteneurs de production automatisée, avec auto-remédiation des problèmes et scalabilité horizontale automatique, on admettra qu’il est normal que tout sysadmin en rêve !

Nous avons souvent ici abordé des points techniques autour de Kubernetes, des outils ou encore des pratiques, mais je souhaite aujourd’hui aborder un point bien moins technique mais d’une importance capitale : la maîtrise des coûts.

L’usage de Kubernetes dans les entreprises

Kubernetes est d’une opacité extrême lorsqu’il s’agit du cost management. Certes les différents providers de cloud public proposent généralement des outils permettant d’estimer ou de voir les coûts de ses infrastructures, mais comme 75% des entreprises qui se sont élevées vers le cloud en sont ou sont en train d’en revenir, on ne va pas parler d’eux aujourd’hui, désolé !

Kubernetes propose des workloads dynamiques par nature, tout est éphémère, se créé, se volatilise en quelques secondes. Dans un contexte comme celui-là, difficile d’estimer les coûts d’un cluster et quand bien même on ignorerait ces ressources éphémères, on pourrait toujours parler de ces workloads relativement fixes mais dont les ressources ont été attribuées au doigt mouillé et qui ne consomment souvent que quelques pourcents de ce qu’elles réservent.

Dans les grands groupes, dont les équipes infra ont à charge de mettre en place et de maintenir des clusters Kubernetes afin que toute équipe de développement puisse y déployer librement ses applications, on retrouve souvent cette problématique de l’application pour laquelle l’équipe a réservé 6Go de RAM et 2 CPU, mais qui n’utilise 90% du temps que 1Go de RAM et 0.2 CPU (vous vous êtes reconnus ? bien, on avance).

Kubecost, surveillance et gestion des coûts

Kubecost est un projet partiellement open-source et gratuit, proposant également des offres payantes, dont le but est de vous aider à non seulement monitorer mais également maîtriser les coûts de votre cluster Kubernetes, qu’il soit dans le cloud ou installé sur vos propres infrastructures et ce à travers des graphiques et alertes paramétrables permettant de suivre les coûts de vos ressources, ainsi que de détecter et d’être alerté d’une potentielle montée anormale de ces coûts.

Dans son utilisation, Kubecost se présente sous la forme de, d’un côté, une interface web permettant d’accéder à toutes les informations de consommation des ressources déployées dans votre cluster, les coûts engendrés par ces ressources, à l’état de santé de votre cluster, ainsi qu’à des conseils automatisés d’optimisation des coûts ; et d’un autre côté à un CLI permettant d’obtenir les mêmes informations mais sous une forme moins graphique et plus rapide d’utilisation pour des personnes initiées.

Il est bon de noter que Kubecost propose également des APIs accessibles et exposant toutes les informations remontées et calculées directement via HTTP, et qu’il est également capable d’envoyer ses données calculées dans un serveur Prometheus pour exploitation avec un outil tiers, juste au cas où.

Le projet s’installe facilement dans n’importe quel cluster Kubernetes en quelques secondes grâce à un chart Helm ou encore directement dans votre cluster grâce aux ressources fournies par Kubecost.

Kubecost : Un outil compétent

Kubecost est l’un des outils les plus simples et efficaces aujourd’hui afin de contrôler et maitriser le budget de ses infrastructures Kubernetes, le FinOps étant de plus en plus abordé dans des entreprises de toutes tailles. Le projet peut se déployer en quelques minutes et, comme toujours avec Kubernetes, se démonter en quelques secondes dans le pire des cas.

Pourquoi ne pas l’essayer ?

 

© Julien PONTILLO | Consultant & expert Klanik