Monitoring and optimizing power consumption is crucial for efficient resource management in Kubernetes environments. To address this need, a powerful tool called Kepler (Kubernetes-based Efficient Power Level Exporter) has emerged. Leveraging software counters, custom machine learning (ML) models, and the Cloud Native benchmark suite, Kepler offers accurate energy estimates and detailed reporting of power consumption at the pod level.
Kepler is now part of the Cloud Native Computing Foundation (CNCF) sandbox project, specifically under the CNCF TAG Environmental Sustainability. This designation underscores Kepler’s commitment to promoting energy efficiency and sustainability within cloud-native environments.
Note: Red Hat’s Emerging Technologies blog includes posts that discuss technologies that are under active development in upstream open source communities and at Red Hat. We believe in sharing early and often the things we’re working on, but we want to note that unless otherwise stated the technologies and how-tos shared here aren’t part of supported products, nor promised to be in the future.
Power monitoring with Kepler
Kepler utilizes software counters and power sources such as RAPL (Running Average Power Limit), ACPI (Advanced Configuration and Power Interface) and NVIDIA GPU to measure power consumption by hardware resources within a Kubernetes cluster. By employing an extended Berkeley Packet Filter (eBPF)-based approach, it attributes power consumption to specific processes, containers and Kubernetes pods. This granular visibility enables efficient power management and optimization.
Kepler goes beyond power measurement and converts power usage into energy estimates. This is achieved through a custom ML model trained on data from the Cloud Native benchmark suite. By leveraging this model, Kepler provides estimations of workload energy consumption in the public cloud and in private data centers, aiding in resource planning and optimization.
Pod-level energy consumption reporting
One of the standout features of Kepler is its ability to report energy consumption at the pod level. By exposing Prometheus metrics, administrators gain valuable insights into the energy consumption of individual pods. This visibility empowers them to identify energy-intensive workloads, optimize resource allocation and make informed decisions regarding workload placement.
Support for virtualized environments
Kepler recognizes that Kubernetes deployments may run on virtual machines instead of bare metal instances. In such cases, Kepler relies on Linux control groups (cgroups) to estimate energy consumption. This ensures that energy monitoring and optimization are still possible, even in virtualized environments.
While Kepler is designed specifically for Kubernetes environments, it also extends its energy estimation capabilities to non-Kubernetes environments. By installing the Kepler RPM on a Linux server, administrators can estimate the power consumption of individual processes, even outside the Kubernetes ecosystem. This versatility allows organizations to benefit from Kepler’s power monitoring capabilities across their entire infrastructure.
Kepler owes its success to the active contributions from several prominent industry players. Intel, Weaveworks, IBM and Red Hat are among the key contributors to the ongoing development and enhancement of Kepler. This collaboration ensures that Kepler remains at the forefront of power monitoring technology, integrating the latest advancements and best practices.
Rapid adoption and community support
Kepler’s impact is evident from its growing popularity and widespread adoption. On a daily basis, the Kepler project receives a significant number of actions, with over 100,000 actions recorded on its Quay repository. This high level of engagement reflects the vibrant community surrounding Kepler and highlights its relevance and value to Cloud Native users and administrators.
The future of energy monitoring
As Kepler continues to evolve within the CNCF sandbox project, its future looks promising. The support from industry-leading contributors and the active engagement of the community indicate that Kepler will remain a driving force in the pursuit of energy efficiency and environmental sustainability in cloud-native environments.
Kepler presents a powerful solution for monitoring and optimizing power consumption in Kubernetes as well as non Kubernetes environments. Through its use of software counters, ML models and the Cloud Native benchmark suite, Kepler provides accurate energy estimates and granular reporting at the pod level. By leveraging this information, organizations can make informed decisions, optimize resource allocation and ultimately improve the efficiency and sustainability of their infrastructure.
Learn more about the Kepler project
There are two previous blog posts that talk about Kepler as well: