Kubeopt について
KubeOptは、AKS、EKS、GKE環境のKubernetesクラスターコストを分析し、最適化を提案します。実行可能な計画とkubectlコマンドを生成し、MCPツールからクライアントがコストや分析結果を照会できます。
主な機能
- 01AKS、EKS、GKEのコスト分析
- 0216種類の最適化アルゴリズム
- 03リソースコストと削減見込みを算出
- 04計画とkubectlコマンドを生成
- 05Podごとのコスト内訳を表示
- 06読み取り専用のGitHub Actionsスキャン
活用シーン
- 01クラスターのコスト削減機会を特定
- 02ワークロードのリソース割り当てを評価
- 03名前空間内のPodコストを確認
- 04プルリクエストでコストスキャンを報告
MCP 対応
stdioで6つのツールを公開し、クラスター一覧、コスト概要や分析、推奨事項、Podコストの取得、新しい分析の開始に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
KubeOpt
Kubernetes のコストエンジニア
KubeOpt は Kubernetes クラスターを分析し、コスト最適化の機会を特定して、コピー&ペーストですぐに使える kubectl コマンド付きの実行可能な実装計画を生成します。
Azure AKS、AWS EKS、Google GKE に対応しています。
できること
- クラウドプロバイダーの API と Kubernetes クラスターに接続します
- 16 種類の最適化アルゴリズムを実行します(リソースの適正化、HPA、ストレージ、ネットワーク、ノードプール、異常検知)
- リソースごとに具体的な削減額を示し、実際のコストと最適なコストを算出します
- すぐに実行できる kubectl コマンド付きの 3 週間の実装計画を生成します
- コストの内訳、ワークロード分析、最適化スコアを表示するダッシュボード
GitHub Action
すべてのプルリクエスト、またはスケジュールに従って Kubernetes のコストスキャンを実行します。この Action は削減額の概要を PR コメントとして投稿し(再実行時は既存のコメントを更新)、結果を GitHub Step Summary に書き込みます。
各 PR で得られる内容:
## KubeOpt Cost Scan — 2026-04-27
| Cluster | Provider | Monthly Spend | Savings Available |
|------------------|----------|---------------|-------------------|
| prod-eks-us-east | AWS | $4,120 | $890/mo |
| staging-aks-weu | Azure | $1,340 | $210/mo |
**Total potential savings: $1,100/mo**
<details>
<summary>Top opportunities</summary>
1. $540/mo — prod-eks-us-east — Rightsize 6 over-provisioned node groups
2. $350/mo — prod-eks-us-east — Enable HPA on 4 deployments with static replicas
3. $210/mo — staging-aks-weu — Remove 3 idle nodes outside business hours
</details>
セットアップ — 2 つのステップ:
1. シークレットを追加(Settings → Secrets and variables → Actions):
| シークレット | 値 |
|---|---|
KUBEOPT_URL | KubeOpt インスタンスの URL(例:https://demo.kubeopt.com) |
KUBEOPT_USERNAME | KubeOpt のユーザー名 |
KUBEOPT_PASSWORD | KubeOpt のパスワード |
2. .github/workflows/cost-scan.yml を作成:
name: K8s Cost Scan
on:
pull_request:
types: [opened, synchronize]
schedule:
- cron: '0 8 * * 1' # Every Monday at 08:00 UTC
workflow_dispatch:
permissions:
contents: read
pull-requests: write
jobs:
cost-scan:
runs-on: ubuntu-latest
steps:
- uses: kubeopt/kubeopt@v1
with:
kubeopt-url: ${{ secrets.KUBEOPT_URL }}
kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}
この Action は読み取り専用で、クラスターを変更することはありません。再実行時には PR コメントを更新するため、新しいコメントが追加されることはありません。
Claude AI 連携(MCP)
Kubernetes のコストについて、自然な英語で Claude に質問できます。
KubeOpt には、stdio トランスポートを介して 6 つのツールを公開する MCP サーバー(mcp_server/)が付属しています。接続すると、Claude Desktop、Cursor、Windsurf からクラスターのデータを直接照会でき、ダッシュボードをコピー&ペーストする必要はありません。
公開されるツール:
| ツール | 機能 |
|---|---|
list_clusters | コストデータ付きで、監視対象のすべてのクラスターを一覧表示します |
get_cost_summary | すべてのクラスターを対象に、全体のコスト概要を表示します |
get_cluster_analysis | 指定したクラスターの詳細な分析を表示します |
get_recommendations | 削減効果の大きい順に、実行可能な推奨事項を表示します |
analyze_cluster | 新しい分析を開始し、完了まで状態を確認します |
get_pod_costs | 名前空間で絞り込み可能な、Pod ごとのコスト内訳を表示します |
前提条件
- KubeOpt をローカル(
python main.py)で実行しているか、Railway にデプロイしていること - 依存関係をインストールした Python 仮想環境(
pip install -r requirements.txt)
Claude Desktop
~/.claude/claude_desktop_config.json を編集します:
{
"mcpServers": {
"kubeopt": {
"command": "uvx",
"args": ["kubeopt-mcp"],
"env": {
"KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
"KUBEOPT_USERNAME": "kubeopt",
"KUBEOPT_PASSWORD": "your-password"
}
}
}
}
保存後、Claude Desktop を再起動してください。
Cursor
Cursor Settings → MCP を開き、新しいサーバーエントリを追加します:
{
"kubeopt": {
"command": "uvx",
"args": ["kubeopt-mcp"],
"env": {
"KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
"KUBEOPT_USERNAME": "kubeopt",
"KUBEOPT_PASSWORD": "your-password"
}
}
}
Windsurf / Codeium
~/.codeium/windsurf/mcp_config.json を編集します(存在しない場合は作成してください):
{
"mcpServers": {
"kubeopt": {
"command": "uvx",
"args": ["kubeopt-mcp"],
"env": {
"KUBEOPT_API_URL": "https://your-kubeopt-instance.com",
"KUBEOPT_USERNAME": "kubeopt",
"KUBEOPT_PASSWORD": "your-password"
}
}
}
}
保存後、Windsurf を再起動してください。
プロンプトの例
What are my top 3 cost savings opportunities across all clusters?
Which pods are costing the most in the production namespace?
Give me a summary of total Kubernetes spend this month.
What's the optimization score for my staging cluster?
Trigger a fresh analysis on cluster prod-aks-eastus and report back.
プロトコルの詳細については、modelcontextprotocol.io を参照してください。
GitHub Action — 詳細リファレンス
すべてのプルリクエスト、またはスケジュールに従って Kubernetes のコストスキャンを実行します。この Action は概要を PR コメントとして投稿し(再実行時は既存のコメントを更新)、結果を GitHub Step Summary に書き込みます。
各 PR で得られる内容:
## KubeOpt Cost Scan — 2026-04-27
| Cluster | Provider | Monthly Spend | Savings Available |
|------------------|----------|---------------|-------------------|
| prod-eks-us-east | AWS | $4,120 | $890/mo |
| staging-aks-weu | Azure | $1,340 | $210/mo |
**Total potential savings: $1,100/mo**
<details>
<summary>Top opportunities</summary>
1. $540/mo — prod-eks-us-east — Rightsize 6 over-provisioned node groups
2. $350/mo — prod-eks-us-east — Enable HPA on 4 deployments with static replicas
3. $210/mo — staging-aks-weu — Remove 3 idle nodes outside business hours
</details>
セットアップ
1. リポジトリにシークレットを追加する
Settings → Secrets and variables → Actions に移動し、次を追加します。
| シークレット | 値 |
|---|---|
KUBEOPT_URL | KubeOpt インスタンスの URL(例:https://demo.kubeopt.com) |
KUBEOPT_USERNAME | KubeOpt のユーザー名 |
KUBEOPT_PASSWORD | KubeOpt のパスワード |
2. .github/workflows/cost-scan.yml を作成する
name: K8s Cost Scan
on:
pull_request:
types: [opened, synchronize]
schedule:
- cron: '0 8 * * 1' # Every Monday at 08:00 UTC
workflow_dispatch:
permissions:
contents: read
pull-requests: write
jobs:
cost-scan:
name: KubeOpt Cost Scan
runs-on: ubuntu-latest
steps:
- name: Run KubeOpt cost scan
id: kubeopt
uses: kubeopt/kubeopt@v1
with:
kubeopt-url: ${{ secrets.KUBEOPT_URL }}
kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}
top: 5
post-comment: ${{ github.event_name == 'pull_request' && 'true' || 'false' }}
- name: Print savings to log
if: always()
run: echo "Total savings available: ${{ steps.kubeopt.outputs.total-savings }}/mo"
入力
| 入力 | 必須 | デフォルト | 説明 |
|---|---|---|---|
kubeopt-url | はい | KubeOpt インスタンスの URL | |
kubeopt-username | はい | kubeopt | KubeOpt のユーザー名 |
kubeopt-password | はい | KubeOpt のパスワード | |
cluster-id | いいえ | (すべてのクラスター) | 特定のクラスターのみをスキャンします |
top | いいえ | 5 | 表示する節約機会の上位件数 |
post-comment | いいえ | true | 結果を PR コメントとして投稿します |
出力
| 出力 | 説明 |
|---|---|
total-savings | 月間の節約可能額の合計(USD) |
scan-summary | Markdown 形式の概要全体(後続のステップで使用します) |
特定のクラスターをスキャンする
- uses: kubeopt/kubeopt@v1
with:
kubeopt-url: ${{ secrets.KUBEOPT_URL }}
kubeopt-username: ${{ secrets.KUBEOPT_USERNAME }}
kubeopt-password: ${{ secrets.KUBEOPT_PASSWORD }}
cluster-id: prod-eks-us-east-1
top: 10
注意事項
- スキャンを実行するため、アクションは実行時に
kubeopt/kubeopt@v1をチェックアウトします。ローカルへのインストールは不要です。 - PR コメントはアップサートされます。アクションを再実行すると、新しいコメントを追加するのではなく、既存のコメントが更新されます。
- コメントの投稿には
pull-requests: write権限が必要です。 - このアクションはクラスターを変更しません。読み取り専用です。
アーキテクチャ
KubeOpt Platform
+----------------------------------------------------------+
| |
| React SPA (Recharts) FastAPI REST API (v2) |
| frontend/dist/ presentation/api/v2/ |
| |
+---------------------------+------------------------------+
|
+------------------+------------------+
| | |
+-------v------+ +-------v------+ +--------v-------+
| Algorithms | | Analytics | | ML Models |
| (16 modules)| | Collectors | | Anomaly Det. |
| rightsizing | | Processors | | CPU Optimizer |
| HPA, storage| | Scorer | | Workload Cls |
+--------------+ +--------------+ +----------------+
| | |
+-------v------------------v------------------v-------+
| Cloud Provider Abstraction |
| 6 interfaces: Auth, Executor, Metrics, Costs, |
| Accounts, Inspector |
+---+-----------------+-----------------+-------------+
| | |
+---v---+ +----v----+ +----v----+
| Azure | | AWS | | GCP |
| (AKS) | | (EKS) | | (GKE) |
+-------+ +---------+ +---------+
ホステッドサービス(このリポジトリには含まれません)
| サービス | 用途 | エンドポイント |
|---|---|---|
| プラン生成 | 最適化プランを生成します | plan.kubeopt.com |
| AI チャット | クラスターを会話形式で分析します | ai.kubeopt.com |
| ライセンスマネージャー | ライセンスを検証します | license.kubeopt.com |
これらのサービスを利用するには、PRO または ENTERPRISE ライセンスが必要です。コア分析エンジンは、これらのサービスがなくても動作します。
クイックスタート
前提条件
- Python 3.11+
- Node.js 18+(フロントエンドのビルド用)
- クラウドプロバイダーの認証情報(Azure、AWS、または GCP)
ローカルで実行する
# Clone and install
git clone https://github.com/kubeopt/kubeopt.git
cd kubeopt
pip install -r requirements.txt
# Set up credentials (copy and fill in your values)
cp .env.example .env
# Build frontend
cd frontend && npm install && npm run build && cd ..
# Run
python main.py
# Open http://localhost:5001
Docker で実行する
docker build -t kubeopt .
docker run -p 5001:5001 --env-file .env kubeopt
CLI で実行する
npx kubeopt clusters # List clusters
npx kubeopt analyze <id> # Run analysis
npx kubeopt report <id> # View report
クラウドプロバイダーのセットアップ
Azure(AKS)
次の環境変数を設定します。
AZURE_SUBSCRIPTION_ID=your-subscription-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
AZURE_TENANT_ID=your-tenant-id
Reader ロールを持つサービスプリンシパルが必要です。docs/setup/AZURE-SETUP.md を参照してください。
AWS(EKS)
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_DEFAULT_REGION=us-east-1
EKS、Cost Explorer、CloudWatch への読み取りアクセス権を持つ IAM ユーザーが必要です。
Google Cloud(GKE)
GCP_SERVICE_ACCOUNT_KEY={"type":"service_account",...}
GCP_BILLING_DATASET=your_billing_dataset
GCP_BILLING_ACCOUNT_ID=your-billing-account-id
docs/setup/GCP-BILLING-SETUP.md を参照してください。
プロジェクト構成
kubeopt/
algorithms/ 16 optimization algorithm modules
analytics/ Cost collectors, processors, cluster scorer
application/ Orchestrator, command generators
infrastructure/
cloud_providers/ Azure, AWS, GCP adapters (6 interfaces each)
services/ Auth, caching, license validation, settings
persistence/ Database, analysis engine
machine_learning/ Anomaly detection, CPU optimizer, workload classifier
presentation/
api/v2/ FastAPI routers, schemas, dependencies
frontend/ React SPA (TypeScript, Recharts, Tailwind)
shared/
standards/ 16 YAML-based optimization standards
config/ Application configuration
mcp_server/ MCP server (6 tools, stdio transport)
技術スタック
| コンポーネント | 技術 |
|---|---|
| バックエンド | Python 3.11+、FastAPI、uvicorn |
| フロントエンド | React 19、TypeScript、Vite、Recharts、Tailwind CSS |
| ML | Pandas、NumPy、Scikit-learn |
| クラウド | Azure SDK、boto3、google-cloud SDK |
| データベース | SQLite(開発)、PostgreSQL(本番) |
| デプロイ | Docker、Railway、Kubernetes |
ライセンス
Apache License 2.0。LICENSE を参照してください。
コア分析エンジンはオープンソースで、無料で利用できます。プラン生成と AI チャットはホステッドサービスであり、PRO または ENTERPRISE ライセンスが必要です。
貢献
ガイドラインについては、CONTRIBUTING.md を参照してください。
セキュリティ
セキュリティ上の脆弱性を報告するには、[email protected] までメールでご連絡ください。SECURITY.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。