nw  

Energyefficient Kubernetes


Quelle: https://www.redhat.com/en/blog/introducing-developer-preview-of-kepler-power-monitoring-for-red-hat-openshift (leicht angepasst)

Zusammenfassung

Diese Arbeit untersucht den Energieverbrauch von Kubernetes-Clustern mithilfe des Kepler-Projektes und zielt darauf ab, Strategien zur Steigerung der Energieeffizienz zu identifizieren und zu bewerten. Im Zentrum stehen dabei zwei Hauptansätze: der Vergleich von Monolithen und Microservices hinsichtlich ihres Energieverbrauchs und die Evaluation des Einsatzes des Vertical Pod Autoscalers (VPA) zur Optimierung der Ressourcennutzung.

In der Untersuchung des ersten Ansatzes wurde festgestellt, dass die Deploymentstrategie (Monolith vs. Microservices) allein keine signifikante Auswirkung auf die Energieeffizienz hat. Der Energieverbrauch wird hauptsächlich durch den Idle Energieverbrauch der Nodes beeinflusst. Der zweite Ansatz dieser Arbeit, der Einsatz des Vertical Pod Autoscalers, zeigte hingegen positive Effekte auf die Energieeffizienz. Durch die dynamische Anpassung der Ressourcenanforderungen von Pods und durch das Entfernen von Nodes konnte die Auslastung der Nodes verbessert und somit der Idle Energieverbrauch verringert werden. Dies führte zu einer signifikanten Reduktion des Energieverbrauchs.

Schlüsselbegriffe

Energyefficient Kubernetes, CO2-Emissionen, Kepler.

Zielsetzung

Das Ziel dieser Arbeit war es, die Energieffizienz beim Einsatz von Kubernetes zu steigern. Dies wurde erreicht, indem verschiedene Ansätze überprüft wurden, bei denen der Ressourcenverbrauch bei gleichbleibender Performance verringert werden sollte.

Zunächst wurde der Energieverbrauch eines Kubernetes-Clusters möglichst genau ermittelt. Dabei wurde evaluiert, ob die von Kepler gemessenen Werte überhaupt brauchbar für die Korrelierung der verwendeten Ressourcen in einem Cluster waren. Anhand von diesen Resultaten wurden verschiedene Strategien zur Minderung des Ressourcenverbrauchs erarbeitet und umgesetzt, um deren Effektivität zu prüfen.

Ausgangslage

Cloud Computing ist in der IT nicht mehr wegzudenken und wird immer häufiger eingesetzt, da Ressourcen wie CPU oder Arbeitsspeicher nach Bedarf bezogen und dynamisch angepasst werden können. Es ist deshalb wichtig, diese Ressourcennutzung effizient zu halten, da überschüssige Ressourcen dynamisch für andere Dienste genutzt werden können.

Eine ineffiziente Ressourcennutzung führt auch zu einem höheren Stromverbrauch. Bei der Stromerzeugung werden direkt oder indirekt Treibhausgase freigesetzt. Daher ist ein effizienter Ressourcenverbrauch beim Cloud Computing auch für den Klimaschutz wichtig.

In den letzten Jahren ist der Einsatz von Kubernetes bei SIX stark und kontinuierlich gewachsen, da diese Technologie als zukunftsweisend gilt. Da bei SIX mehrere grössere Kubernetes Cluster in Betrieb sind, hätte eine effizientere Nutzung eine grosse Wirkung auf die Reduktion von Emissionen.

Ergebnisse

Durch die Analyse der Messdaten von Kepler wurde herausgefunden, dass der Energieverbrauch linear zur CPU-Auslastung ist. Viel Spannender war aber die Erkenntnis, das über 77% dieses Energieverbrauch jeweils auf den Idle-Verbrauch des Nodes zurückzuführen war.

Als Strategie zur Minderung dieses Idle-Werts wurde anschliessend untersucht, ob der Einsatz eines Vertical Pod Autoscalers Abhilfe schaffen würde. Dieser würde dynamisch die angeforderten Resourcen eines Pods anpassen. Damit war es möglich, Nodes testweise aus dem Cluster zu entfernen und den idle-Wert zu verbessern.

Projektdaten
Projekttyp Projektdauer Aufwand Teamgrösse
Bachelor-Thesis Informatik (IP6) Sept 2023 - März 2024 360 Personenstunden 2 Personen
Auftraggeber

Norwin Schnyder

SIX Group AG
Pfingstweidstrasse 110
8005 Zürich, Schweiz
https://www.six-group.com

Projektteam

Jérôme Baur und Julie Engel

Kontakt

Sebastian Graf (sebastian.graf@fhnw.ch)

<< zurück