Container-level Energy Observability in Kubernetes Clusters
Bjorn Pijnacker, Brian Setz, Vasilios Andrikopoulos
TL;DR
This work addresses the challenge of observing energy consumption at container granularity within Kubernetes. It first rigorously evaluates the state-of-the-art Kepler, uncovering substantial inaccuracies in per-container power attribution, then introduces KubeWatt, a model-driven alternative that partitions node power into static and dynamic components and assigns dynamic power to containers using an allocation scheme. Through controlled experiments, KubeWatt demonstrates consistent static-power estimates and accurate container-level attributions under stress, outperforming Kepler in the tested scenarios. The results imply that fine-grained energy observability is achievable with a transparent power-allocation approach, enabling workload-aware optimizations and more reliable carbon accounting in data-center environments.
Abstract
Kubernetes has been for a number of years the default cloud orchestrator solution across multiple application and research domains. As such, optimizing the energy efficiency of Kubernetes-deployed workloads is of primary interest towards controlling operational expenses by reducing energy consumption at data center level and allocated resources at application level. A lot of research in this direction aims on reducing the total energy usage of Kubernetes clusters without establishing an understanding of their workloads, i.e. the applications deployed on the cluster. This means that there are untapped potential improvements in energy efficiency that can be achieved through, for example, application refactoring or deployment optimization. For all these cases a prerequisite is establishing fine-grained observability down to the level of individual containers and their power draw over time. A state-of-the-art tool approved by the Cloud-Native Computing Foundation, Kepler, aims to provide this functionality, but has not been assessed for its accuracy and therefore fitness for purpose. In this work we start by developing an experimental procedure to this goal, and we conclude that the reported energy usage metrics provided by Kepler are not at a satisfactory level. As a reaction to this, we develop KubeWatt as an alternative to Kepler for specific use case scenarios, and demonstrate its higher accuracy through the same experimental procedure as we used for Kepler.
