トップ OSS紹介 Kepler

Kepler

NRIのOpenStandiaが提供するKepler最新情報

バージョンアップ情報

Kepler情報

Keplerとは

Kepler(Kubernetes-based Efficient Power Level Exporter)は、Kubernetes環境における効率的な電力レベルのエクスポートを目的としたオープンソースのツールです。持続可能なコンピューティングに焦点を当てており、クラウドネイティブなアプリケーションが消費する電力を正確に測定し、分析することで、リソースの無駄遣いを減少させ、持続可能なIT運用を支援します。

Keplerの実体はPrometheusエクスポーターです。
Keplerでは、

  • eBPF: Linuxカーネルに組み込まれた強力な技術で、ユーザースペースのプログラムをカーネル内で効率的に実行できる機能
  • kprobe: Linuxカーネルの特定の関数をフックして、その実行時にデータを収集したり、処理をカスタマイズしたりできる機能

を使用してCPUパフォーマンス・カウンターとLinuxカーネル・トレースポイントをプローブします。 sysfsからのこれらのデータと統計情報をMLモデルにフィードして、Podによるエネルギー消費を推定することができます。

主な特徴

電力モデル

Kubernetesクラスター内のコンテナとノードの電力消費をリアルタイムで監視し、データを提供します。使用するシナリオによって、下記のような複数のモデリングアプロ―チを使用して電力値を算出します。

  • 電力比率モデリング
  • 電力推定モデリング
  • 事前トレーニング済の電力モデル

eBPF/kprobeを利用したモニタリング

eBPFおよびkprobeの機能を利用して、ハードウェアCPUイベントを監視したり、下記のようなプロセス(タスク)の統計値を取得します。

  • プロセス実行時間
  • CPUサイクル
  • CPU命令数
  • キャッシュミス数
  • ページキャッシュヒット数 など

これにより、従来の方法に比べて、高精度のデータの収集が可能です。

Prometheus/
Grafana統合

PrometheusやGrafanaと連携し、電力データをメトリクスとして管理可能です。集めた電力データは、グラフやダッシュボードを通じて可視化され、分かりやすい形で分析することができます。

Kepler モデルサーバーとの連携

Keplerモデルサーバーは、Keplerのエネルギー関連メトリックに基づいて、電力モデルのトレーニング、エクスポート、提供、および利用のための補足ツールです。これにより、ある環境からメトリックを収集し、パイプライン フレームワークを使用して電力モデルをトレーニングし、電力メーター (エネルギー測定) が利用できない別の環境に提供するための Kepler のエコシステムを提供します。

メリット・デメリット

メリット・必要性

  • 持続可能な運用: 電力消費を正確に把握することで、エネルギー効率の高い運用が可能になり、環境負荷を軽減します。
  • コスト削減: 電力消費の最適化を実現することで、運用コストの削減が期待できます。
  • レポート機能: 経営層やチームに対して、電力消費に関する定期レポートを作成でき、データに基づく意思決定が可能です。

デメリット・注意点・課題

  • 初期導入の手間: Kubernetes環境への導入には、一定の技術的知識が必要となり、初期設定に手間がかかる場合があります。
  • リソースの負荷: 電力データ収集のための追加リソースが必要となるため、大規模な環境ではパフォーマンスに影響を与えることがあります。
  • 限られたサポート: オープンソースプロジェクトであるため、公式なサポートは限定的で、コミュニティの支援に依存することになります。

類似プロダクト

  • Prometheus: プロメテウス。GO言語で書かれたオープンソースのモニタリングツールです。
  • Grafana: グラファナ。Grafana Labs社が開発したデータ可視化ツールです。

動作環境

Keplerは、Kubernetes(k8s)を前提としています。通常、動作には、k8sクラスターとPrometheusがインストールされていることが必要です。また、下記のような要件があります。

  • Kernel: 4.18以上
  • kubectl: v1.21.0以上

インストール方法としては、

  • マニフェストファイル
  • Helm Chart
  • Keplerオペレーター
  • RPM

などがあります。

Keplerのライセンス

KeplerのeBPF のコードを除く部分に関しては、Apache2.0ライセンスです。 Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。eBPFのコードは、GNU General Public License, Version 2またはBSD 2条項ライセンスの条項のいずれかに従って配布されます。

製品ダウンロード

参考情報

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • OpenTelemetry
    サポート対象

    OpenTelemetry

    OpenTelemetryは、分散アプリケーションのトレーシングとメトリクス収集のための統一的な規格化とAPIを提供するオープンソースプロジェクトです。

  • Prometheus
    サポート対象

    Prometheus

    プロメテウス。GO言語で書かれたオープンソースのモニタリングツールです。

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • Grafana
    サポート対象

    Grafana

    グラファナ。Grafana Labs社が開発したデータ可視化ツールです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。