So messen Admins, wie viel Leistung ihr Kubernetes aufnimmt
Kubernetes-Cluster steigern schnell die Leistungsaufnahme einer IT-Umgebung. IT-Administratoren sollten daher beim Konzipieren der Infrastruktur deren Energiebedarf im Blick haben.
Nachhaltigkeit ist zu einer Priorität in allen Bereichen der Wirtschaft geworden, und die IT-Abteilung spielt dabei eine wichtige Rolle. Um die Energieeffizienz zu verbessern und klimabewusst zu handeln, müssen IT-Administratoren genau prüfen, wo und was den meisten Strom zieht – ein großer Übeltäter sind Kubernetes-Cluster.
Doch viele Teams wissen nicht, wie sie die Leistungsaufnahme ihrer Kubernetes-Cluster oder der gesamten IT-Umgebung messen können.
Auf dem Linux Foundation Open Source Summit leiteten Huamin Chen, Senior Principal Software Engineer bei Red Hat, und Chen Wang, Forschungsmitarbeiter bei IBM, eine Sitzung zum Thema Nachhaltigkeit in Containerumgebungen, in der es darum ging, wie sich der Strombedarf verringern lässt.
Wie man die Leistungsaufnahme analysiert
Chen erläuterte, dass IT-Betriebsteams mit der Energiemanagementtheorie herausfinden, welche Geräte die meiste Energie aufnehmen. Bei dieser Theorie handelt es sich um eine Gleichung, mit der sich die Leistungsaufnahme der CPU ermitteln lässt, indem man deren dynamische Leistung, Kurzschlussleistung und Grundverbrauch miteinander zusammenzählt.
Die dynamische Leistungsaufnahme tritt auf, wenn die CPU-Befehle ausführt und daher je nah Beanspruchung mehr oder weniger arbeiten muss. Die dynamische Leistung 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 Grundverbrauch berücksichtigen, der auch eintritt, wenn sich die Anwendung im Ruhezustand befindet.
Methode zur Energiemessung
IT-Administratoren ermitteln die Schaltkreisfrequenz, die Kapazität und die Ausführungszeit durch Messungen. In einer idealen Welt könnten Sie dafür einfach jede Schaltkreisfrequenz, die Anzahl der eingeschalteten Schaltkreise und deren aktive Betriebsdauer überwachen, um herauszufinden, wo Energie verschwendet wird.
Derzeit fehlt jedoch die Möglichkeit, die Kapazität oder die aktive Betriebszeit einer CPU zu messen, und Daten über die Leistungsaufnahme sind nur auf Knotenebene verfügbar.
Aus diesem Grund müssen IT-Ops-Teams kreativ werden und die durchschnittliche Frequenz über die Zeit als Näherungswert heranziehen, einen Näherungswert für die Kapazität aus der Anzahl der CPU-Anweisungen ermitteln und anhand der CPU-Zyklen die aktive Betriebszeit schätzen. Mit diesen groben Daten im Hinterkopf beginnen Sie, die Größenordnung für die Leistungsaufnahme von Prozessen, Containern oder Pods zu bestimmen.
Open-Source-Projekt liefert genauere Daten
Um diesen Prozess zu unterstützen, haben Chen und Wang Kepler, den Kubernetes-basierten Efficient Power Level Exporter, zum Erfassen des Strombedarfs präsentiert. Kepler ist ein Open-Source-Projekt, das auf Berichterstattung, Reduktion und Regression setzt, um die Leistungsaufnahme zu senken.
Kepler lässt sich in Kubernetes integrieren, um Informationen zu CPU, GPU und RAM über eBPF-Programme (extended Berkeley Packet Filter) zu sammeln und die Leistung zu messen und zu erfassen. Kepler sammelt Daten auf der Kernel-Ebene, so dass der Nutzer die Leistungsaufnahme den Prozessen mit so viel Transparenz wie möglich zuordnen kann.
Sobald Kepler die Daten erfasst hat, geben Sie diese an Prometheus weiter, um die Metriken in lesbare Dashboards zu übersetzen und anhand dieser Wege zum Energiesparen zu finden. Darüber hinaus verwendet Kepler Regression und maschinelles Lernen, um Prognosen zu erstellen und die Genauigkeit zu verbessern.
Für die Zukunft hofft das Kepler-Projekt, ein Dashboard für Energieverbrauch und Kohlendioxidemissionen zu erstellen, das den CO2-Fußabdruck jedes Pods anzeigt. Die Entwickler hoffen auch, langfristig eine energiebewusste Pod-Planung und Knotenabstimmung anbieten zu können.