MCP Server について
MCP ServerはChaos Meshを利用し、Kubernetesの障害注入、ストレステスト、ログ取得、負荷テスト結果の参照機能を提供します。障害発生時のPodやホストの挙動を検証するチーム向けです。
主な機能
- 01Podとコンテナへの障害注入
- 02CPUとメモリのストレステスト
- 03ホストのディスク障害シミュレーション
- 04ネットワーク分断と帯域制限
- 05サービスとコンテナのログ取得
- 06集約された負荷テスト結果の監視
活用シーン
- 01障害発生時のPodの挙動をテストする
- 02ホストやPodのリソースに負荷をかける
- 03ログと負荷テスト結果を確認する
MCP 対応
MCPサーバーは、障害注入、ストレステスト、Kubernetesログの取得、集約された負荷テスト結果の参照ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
MCP サーバーは、Chaos Mesh を使用して Kubernetes のポッドやホストに障害を注入し、ストレステストを実行するためのツールです。ログの取得や負荷テスト結果の監視に役立つユーティリティも提供します。
機能
- ポッドへの障害注入:ポッドの障害、ポッドの強制終了、コンテナの強制終了をシミュレートします。
- ポッドのストレステスト:ポッドに対する CPU およびメモリーのストレステストをシミュレートします。
- ホストのストレステスト:ホストに対する CPU およびメモリーのストレステストをシミュレートします。
- ホストのディスク障害:ホストでディスク容量の枯渇、読み取りペイロード、書き込みペイロードの障害をシミュレートします。
- ネットワーク障害:ネットワーク分断や帯域幅の制限をシミュレートします。
- ログの取得:特定のサービスやコンテナのログを取得します。
- 負荷テストの監視:集計された負荷テスト結果を解析して取得します。
プロジェクト構成
fault_inject.py:障害注入とストレステストを実行する関数が含まれています。kube.py:ポッドログの取得など、Kubernetes とやり取りするためのユーティリティを提供します。server.py:MCP サーバーを実装し、障害注入やログ取得のツールを公開します。test.py:障害注入およびログ関連のユーティリティを使用するテストケースと例が含まれています。services.json:名前空間、ラベル、コンテナなど、クラスター内のサービスを定義します。
インストール
前提条件:
開始する前に、uv がインストールされていることを確認してください。uv はこちらからインストールできます。
1. リポジトリをクローンします:
git clone https://github.com/Hades-gsl/mcp_server.git
cd mcp_server
2. uv を使用して仮想環境をビルドし、セットアップします:
uv venv
source .venv/bin/activate
3. 依存関係をインストールします:
uv sync
4. Kubernetes クラスターに Chaos Mesh をインストールします。
こちらからインストールできます。
使用方法
次のコマンドを使用して MCP サーバーを実行します:
uv run python server.py
--transport 引数を追加すると、トランスポート方式を指定できます。デフォルトでは、transport パラメーターは sse に設定されています。
サービス情報
クラスター内のサービスを示す services.json ファイルを記述してください。役立つ情報であれば何でも記述でき、詳細であるほど望ましいです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。