Table of Contents
Fetching ...

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.

Container-level Energy Observability in Kubernetes Clusters

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.

Paper Structure

This paper contains 23 sections, 2 equations, 8 figures, 1 table.

Figures (8)

  • Figure 1: The hardware and software setup to evaluate Kepler. sut = system under test, tc = thin client.
  • Figure 2: Total power of SUT during the stressor tests
  • Figure 3: Per-namespace container power draw as reported by Kepler during the stressor tests
  • Figure 4: Power usage and number of CPU instructions as reported by Kepler during the stressor tests
  • Figure 5: Power attribution and CPU utilization before and after deleting inactive pods. The markers indicate the times at which the stressing load was started;the inactive pods were deleted;the stressing load was stopped,respectively.
  • ...and 3 more figures