🟢 📦 オープンソース 公開日: · 4 分で読めます ·

CNCF Keplerが根本から再設計:カーネル特権なしでKubernetes Podの電力を精密計測

エディトリアルイラスト:CNCF KeplerがKubernetesインフラの正確な電力消費計測のために再設計

CNCF sandboxプロジェクトのKeplerが完全に書き直された:新アーキテクチャはeBPFアプローチを、標準的な/procと/sysパスの読み取りに置き換え、数キロワット単位の計測の跳びを排除し、プロセスごとの電力帰属のギャップをミリワット単位まで縮小する。

🤖

この記事はAIにより一次情報源から生成されました。

Kepler(Kubernetes-based Efficient Power Level Exporter)——2023年からKubernetesクラスターの電力消費を計測するCNCF sandboxプロジェクト——が完全に新しいアーキテクチャを得た。チームはリライトの詳細な技術的根拠、実験の結果、コミュニティへの協力呼びかけを発表した——特にAIおよびMLワークロードを運用する組織にとって重要な内容で、これらのワークロードの電力消費はますます重要なメトリクスになっている。

なぜKubernetesは電力消費に対して盲目なのか?

Kubernetesは個々のPodやワークロードがどれだけのエネルギーを消費するかを追跡するネイティブなメカニズムを提供していない。クラスター管理者はCPUとメモリの消費は確認できるが、ワット数は確認できない——組織がカーボンフットプリントを追跡したり、エネルギーコストを最適化したり、ESGレポートの要件を満たしたりしたい場合に問題となる。Keplerはその空白を埋める:ハードウェアの電力メーターを読み取り、消費を個々のLinuxプロセスとPodに帰属させ、結果をPrometheusメトリクスとしてエクスポートする。

旧アーキテクチャとその問題点

元のKeplerは使用率シグナルのキャプチャにeBPF(extended Berkeley Packet Filter)に依存していた。このアプローチは本番環境での深刻な制限があった:

CAP_BPFCAP_SYSADMIN特権を必要とした——多くのセキュリティチームが標準的な監視ツールに許可しないものだ。本番KubernetesクラスターはしばしばコンテナのPrivilegeに関する厳格なポリシーを持ち、Keplerはデプロイ段階でブロックされることがあった。

eBPFアプローチはカーネルプローブが記録する前に終了した短命なプロセスを見逃した。短いバッチタスクを集中的に使用するAI/MLワークロードでは、この不精度が積み重なる可能性があった。

最も目に見える症状は計測での数キロワット単位の跳びの発生——実際の物理的な消費を反映せず、メトリクスとダッシュボードを汚染する実装のアーティファクトだった。

カーネル特権なしの新アーキテクチャ

新アーキテクチャと精度の向上

新しいKeplerはeBPFを完全に廃止した。代わりに、カーネル特権を必要とせずにLinuxカーネルがすべてのプロセスに公開する標準的な/proc/sysパスを読み取る。アプローチはread-onlyだ:KeplerはカーネルへのWriteもコードのインジェクトも行わない。

主要な革新は実行時での電力メーター構造の動的検出だ。旧アーキテクチャは固定されたハードウェアトポロジーを前提としており、異なるDRAM・ソケット・パッケージレベルの構成を持つサーバーでエラーを引き起こしていた。新バージョンは起動時に/sysから構造を読み取り、手動設定なしに適応する。

デプロイメントは単一のHelmチャートに簡素化され、学習曲線と設定可能なパラメータ数が大幅に減少した。

実験結果

チームは新アーキテクチャの検証のために二つの主要な実験を実施した:

実験1は新しいkepler_node_cpu_wattsとIPMIのground truth計測(サーバーハードウェアの物理センサー)を比較した。結果:新しいメトリクスは旧実装を特徴づけていた数キロワット単位の跳びなしにIPMIパターンを追跡する。

実験2はプロセスレベルでの電力帰属ギャップ——すべてのプロセスの帰属電力の合計とノードの合計測定電力との差——を計測した。ギャップはミリワット単位まで縮小された(以前のワットやキロワットではなく)、新アーキテクチャが総消費を一貫して分配することを確認する。

テストカバレッジは**90%**に達した——このタイプのインフラツールとしては高いレベルだ。

コミュニティへの呼びかけ

Keplerチームは貢献を求める四つの領域を示している:

AI/MLワークロードのGPU監視は未解決の問題のまま——現在のアーキテクチャはCPUをカバーするが、PodあたりのGPU電力帰属はNVIDIAとAMDがメトリクスを公開する方法により複雑だ。これはKubernetesでLLM推論やトレーニングを運用する組織にとって特に重要だ。

VM環境の電力モデリングはMLアプローチを必要とする——仮想化レイヤーが物理的なメーターを隠すためだ。チームは電力推定モデルをトレーニングできる専門家を求めている。

物理的なメーター(IPMI、外部ワットメーター)に対する検証とアイドル電力帰属の改善が追加の未解決問題だ。

AIインフラのエネルギー消費をすでに計測している組織にとって、新バージョンのKeplerはクラスターのセキュリティポリシーを妥協することなく既存のPrometheus/GrafanaスタックへのIntegrationのためのより安定した基盤を表している。

よくある質問

Keplerとは何で、何に使われるか?
KeplerはKubernetesクラスターの電力消費を計測し、個々のLinuxプロセスとPodに帰属させ、結果をPrometheusメトリクスとしてエクスポートするCNCF sandboxプロジェクトだ。AIおよびMLワークロードの電力消費を追跡するための主要ツールだ。
旧アーキテクチャの主な問題と新アーキテクチャがどう解決するか?
旧アーキテクチャはeBPFを使用し、CAP_BPFとCAP_SYSADMIN特権を必要とし、短命なプロセスを見逃し、数キロワット単位の計測の跳びを引き起こした。新しいものは標準的な/procと/sysパスを読み取り、read-onlyで動作し、電力メーターの構造を動的に検出し、カーネル特権を必要としない。
新アーキテクチャの実験結果はどうか?
新しいkepler_node_cpu_wattsはkWの跳びなしにIPMIのground truthを追跡し、プロセスの電力帰属ギャップはミリワット単位まで縮小された。テストカバレッジは90%に達した。