Cet article a été rédigé par : Quentin Reynaud – Cloud Engineer – Senior Consultant Infra – Devoteam G Cloud
Kubecon : Un enjeu écologique majeur
Le développement durable est au cœur des préoccupations actuelles, et le secteur informatique n’est pas en reste. En effet, les data centers consomment une importante quantité d’énergie. Heureusement, des outils et des techniques existent pour réduire cette empreinte écologique, tout en maintenant les performances des applications.
En effet, lors de la Kubecon, nous avons pu constater, au travers de témoignages et retours d’expérience, que Kubernetes est au cœur de cette stratégie majeure pour réduire les émissions de carbone liées au fonctionnement de l’infrastructure.
Comment fournir les meilleurs outils aux développeurs pour optimiser l’utilisation des ressources et réduire la consommation d’énergie ? C’est ce que nous allons aborder dans cet article.
Kube-downscaler : Libérez les ressources non exploitées
Kube-downscaler est un outil qui apporte une fonctionnalité puissante permettant aux développeurs de signaler explicitement à Kubernetes le nombre de pod réduit. Son utilisation est très simple, à partir d’une annotation il est possible de définir les conditions dans lesquelles un deployment ou même un job doivent être suspendus. L’objectif principal vise à réduire l’exploitation des ressources en dehors des heures de travail. Par exemple, en réduisant à 0 les ressources de l’environnement de développement pendant la nuit. Cette approche permet de libérer des ressources, réduisant ainsi la consommation globale d’énergie.
https://codeberg.org/hjacobs/kube-downscaler
Intégration de Kepler : des données de consommation pour un meilleur pilotage
Kepler est un outil qui permet de collecter des données détaillées sur la consommation de ressources par les pods. Ces données incluent l’utilisation du CPU, de la mémoire et du stockage. En intégrant ces metrics dans des modèles de machine learning, Kepler est en mesure d’estimer la consommation électrique des workloads. Il s’agit uniquement d’estimations. Toutefois, cela permet de distinguer les grandes tendances. En effet, ces limitations encouragent l’optimisation des ressources par les développeurs.
https://sustainable-computing.io
Vertical Pod Autoscaler (VPA) : l’automatisation au service de l’efficacité
Estimer les besoins de ressources pour une application, peut s’avérer complexe, en particulier lorsque elle est nouvelle, ne possédant aucun historique. C’est pourquoi, sur Kubernetes, il nous arrive souvent de surdimensionner le nombre de ressources pour s’assurer du bon fonctionnement de l’application. A l’échelle de plusieurs centaines ou milliers de pods, cela représente une quantité considérable de ressources allouées.
Heureusement, sur Kubernetes nous pouvons tirer profit du Vertical Pod Autoscaler (VPA). Le VPA est un contrôleur Kubernetes qui ajuste automatiquement les ressources attribuées à un pod en fonction de sa consommation réelle. Grâce à la fonctionnalité In-place Resource Resize, dans les dernières versions de Kubernetes, il n’est même plus nécessaire de redémarrer les pods pour ajuster les ressources car tout se fait de manière transparente.
Conclusion : Ouvrir la voie à l’action
L’implication des développeurs est essentielle pour la réussite de cette démarche. En leur donnant la main sur l’ensemble des outils disponibles, nous leur permettons d’identifier facilement les points d’optimisation et d’adopter des pratiques plus économes en énergie. Leur contribution est indispensable pour construire un avenir plus écologique.
Vous souhaitez en savoir plus ?