Anterovium - stock.adobe.com
Kepler-Projekt soll den Energiebedarf von Kubernetes senken
Kubernetes-Cluster haben häufig eine unverhältnismäßig hohe Leistungsaufnahme. Das Kepler-Projekt und Tool will IT-Profis dabei helfen, diesen Strombedarf zu reduzieren.
Nachhaltigkeit ist zu einer gesamtgesellschaftlichen Priorität geworden, und der IT-Betrieb bildet da keine Ausnahme. Um die Energieeffizienz zu steuern und klimabewusst zu handeln, müssen Administratoren genau prüfen, wie sie ihren Energiebedarf senken können – einen großen Nachholbedarf haben die Kubernetes Cluster.
Viele Teams wissen nicht, wie sie die Leistungsaufnahme von Kubernetes Clustern oder des gesamten IT-Betriebs messen.
Auf dem Linux Foundation Open Source Summit 2022 leiteten Huamin Chen, Senior Principal Software Engineer bei Red Hat, und Chen Wang, Forschungsmitarbeiter bei IBM, eine Sitzung darüber, wie sich die Nachhaltigkeit in Containerumgebungen mit dem Kepler-Projekt verbessern lässt.
Deshalb benötigt Kubernetes so viel Energie
Chen erläuterte, dass IT-Administratoren mit der Energiemanagementtheorie herausfinden, welche Komponenten die meiste Leistung aufnehmen. Dafür addieren Sie die dynamische Leistung mit der Kurzschlussstrom und dem Leckstrom, um den Energiebedarf der CPU zu erhalten.
Die dynamische Leistung beschreibt den Energiebedarf der CPU für das Ausführen von Befehlen; sie ist der größte Teil der Leistungsaufnahme. Sie setzt sich aus drei Faktoren zusammen: geschaltete Lastkapazität, Schaltungsbetriebsfrequenz und Spannung in Echtzeit und in Rechenzentren.
Darüber hinaus müssen IT-Betriebsteams den Leckstrom berücksichtigen, der auch dann weiterläuft, wenn sich die Anwendung im Ruhezustand befindet.
Kubernetes-Energiemessmethoden
Administratorenteams nutzen die Energiemessmethode, um Schaltkreisfrequenz, Kapazität und Ausführungszeit zu messen. In einer idealen Welt könnten Sie jede Schaltkreisfrequenz, die Anzahl der eingeschalteten Schaltkreise und die Dauer der Schaltkreise überwachen, um herauszufinden, wo Energie verschwendet wird.
Zum Zeitpunkt des Seminars gab es jedoch noch keine Möglichkeit, die Kapazität oder die Ausführungszeit einer CPU zu messen, und Energieverbrauchsdaten sind nur auf Knotenebene verfügbar.
Um diese Hürden zu umgehen, müssen Sie kreativ werden und die durchschnittliche Frequenz über die Zeit als Näherungswert heranziehen, die Anzahl der CPU-Anweisungen als Näherungswert für die Kapazität heranziehen und die CPU-Zyklen für die Ausführungszeit verwenden. Mit diesen groben Messungen im Hinterkopf haben Sie eine erste Schätzung, um den Stromverbrauch von Prozessen, Containern oder Pods zuzuordnen.
Arbeiten mit Kepler
Zur Unterstützung dieses Prozesses haben Chen und Wang Kepler, den Kubernetes-basierten Efficient Power Level Exporter, zum Erfassen der notwendigen Metriken eingeführt. Kepler ist ein Open-Source-Projekt, das sich auf die Berichterstattung, das Reduzieren und die Regression konzentriert, um die Leistungsaufnahme zu senken.
Das Kepler Tool lässt sich in Kubernetes integrieren, um Informationen von CPU, GPU und RAM über eBPF-Programme (extended Berkeley Packet Filter) zu sammeln und die Leistung zu messen und zu erfassen. Kepler sammelt die Daten auf der Kernel-Ebene, so dass die Energie den Prozessen mit größtmöglicher Transparenz zugeordnet ist.
Sobald Kepler die Daten erfasst hat, geben die IT-Betriebsteams sie in Prometheus ein, um die Metriken in lesbare Dashboards zu übersetzen, die ihnen helfen, Entscheidungen zur Energieeinsparung zu treffen. Darüber hinaus verwendet Kepler Regressions- und maschinelle Lernmodelle, um den zukünftigen Energiebedarf zu schätzen und die Genauigkeit zu verbessern.
Für die Zukunft hofft das Kepler-Projekt, ein Dashboard für Leistungsaufnahme und Kohlendioxidemissionen zu erstellen, das den CO2-Fußabdruck jedes Pods anzeigt. Die Entwickler des Tools hoffen, in Zukunft Empfehlungen für eine energiebewusste Pod-Planung und Knotenabstimmung anbieten zu können.