Kubernetes AI Ops Agent について
DevOps エンジニアや Kubernetes 管理者向けの実験的なエージェントです。自然言語でクラスターを操作でき、Kubernetes と Prometheus の MCP サーバーを Chainlit のウェブインターフェースと組み合わせています。
主な機能
- 01自然言語によるクラスター操作
- 02Kubernetes MCP ツールの実行
- 03Prometheus メトリクスへのアクセス
- 04Chainlit チャットインターフェース
- 05Docker と Helm によるデプロイ
活用シーン
- 01名前空間内の Pod を一覧表示
- 02CrashLoopBackOff 状態の Pod を調査
- 03クラスターの監視データを確認
MCP 対応
Kubernetes と Prometheus の MCP サーバーを使ってクラスター操作や監視データの取得を行います。これらのサーバーがエージェントにツールとメトリクスを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kubernetes AI Ops Agent
自然言語での対話を通じて Kubernetes の運用と管理を支援する、AI 搭載のアシスタントです。
概要
Kubernetes AI Ops Agent は、DevOps エンジニアや Kubernetes 管理者が、会話型インターフェースを通じて Kubernetes クラスターを管理できるよう支援するインテリジェントなエージェントです。このプロジェクトでは、LLM(大規模言語モデル)を活用してユーザーの意図を解釈し、専用の MCP(Model Context Protocol)サーバーを使用して Kubernetes の操作を実行します。

プロジェクトの状況
注:このプロジェクトは現在、実験段階です。主に、LLM(大規模言語モデル)を Kubernetes、Prometheus、その他の MCP(Model Context Protocol)サーバーと連携させることの機能と潜在的な利点を検証する概念実証として提供されています。プロジェクトの進展に伴い、機能や動作が大幅に変更される場合があります。
機能
- 🤖 AI による支援:自然言語を使って Kubernetes クラスターとやり取りできます
- 🧰 ツール連携:専用ツールを通じて Kubernetes の操作を実行できます
- 🚀 デプロイ対応:簡単にデプロイできるよう、Docker と Helm チャートでパッケージ化されています
- 📊 Web インターフェース:インタラクティブなチャット体験を実現する Chainlit で構築されています
前提条件
- Python 3.10+
- Docker
- Kubernetes クラスターへのアクセス
- Helm(デプロイ用)
インストール
ローカル開発
-
リポジトリをクローンします:
git clone https://github.com/yourusername/kubernetes-ai-ops-agent.git cd kubernetes-ai-ops-agent -
依存関係をインストールします:
pip install -r requirements.txt -
必要な MCP サーバーをインストールします:
# Install the Kubernetes MCP server npm install -g @kubernetes-ai/mcp-server-kubernetes # Install the Prometheus MCP server pip install prometheus-mcp-server注:ローカル開発では、
deps/ディレクトリ内にある MCP サーバーを使用しないでください。これらはカスタマイズされたバージョンです:deps/内の Kubernetes MCP サーバーは、Pod 環境で適切に初期化されるよう、loadFromClusterを使用するよう変更されています。deps/内の MCP サーバーは、実行時にダウンロードするのではなく、コンテナーイメージに直接パッケージ化するために含まれています。
-
Kubernetes へのアクセスを設定します:
- kubeconfig が適切に設定されていることを確認します
- エージェントは現在の kubectl コンテキストを使用します
-
アプリケーションを起動します:
chainlit run src/main.py
Helm チャートのデプロイ
- Docker イメージをビルドしてプッシュします:
# Build the Docker image
docker build -t <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG> .
# Push the image to your container registry
docker push <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent:<TAG>
- 独自の設定を含む
customized.values.yamlファイルを作成します:
# Customized values for kubernetes-ai-ops-agent
image:
repository: <YOUR_CONTAINER_REGISTRY>/kubernetes-ai-ops-agent
# Configure the secrets
secrets:
data:
# Option 1: For Azure OpenAI configuration
AZURE_OPENAI_ENDPOINT: "https://<YOUR_OPENAI_SERVICE>.openai.azure.com/"
AZURE_OPENAI_API_KEY: "<YOUR_AZURE_OPENAI_API_KEY>"
AZURE_OPENAI_MODEL: "<YOUR_DEPLOYMENT_NAME>"
OPENAI_API_VERSION: "<API_VERSION>"
# Option 2: For standard OpenAI configuration
# OPENAI_API_KEY: "<YOUR_OPENAI_API_KEY>"
# OPENAI_MODEL: "<YOUR_MODEL_NAME>" # e.g., "gpt-4o"
# Prometheus configuration
PROMETHEUS_URL: "http://<YOUR_PROMETHEUS_SERVICE>.<NAMESPACE>:9090"
- カスタマイズした値を使用してチャートをインストールします:
cd deploy/helm
helm install kubernetes-ai-ops ./kubernetes-ai-ops-agent -f customized.values.yaml
- ポートフォワードを使用してアプリケーションにアクセスします:
# Port-forward the service to access it locally
# Use the namespace where you installed the chart (default used here as example)
kubectl port-forward svc/kubernetes-ai-ops-agent 9000:9000 -n <NAMESPACE>
# Now you can access the web interface at http://localhost:9000
注:Helm チャートをインストールした名前空間に合わせて、
<NAMESPACE>を置き換えてください。
名前空間を指定せずにインストールした場合(-nフラグを指定しなかった場合)、現在のコンテキストの
名前空間が使用されます(通常は「default」です)。
アーキテクチャ
アプリケーションは、以下のコンポーネントで構成されています:
- Chainlit インターフェース:AI アシスタントとやり取りするための Web UI
- エージェント層:自然言語を処理し、操作を計画して実行します
- MCP サーバー:
- Kubernetes MCP サーバー:Kubernetes API の操作を処理します
- Prometheus MCP サーバー:監視メトリクスとデータを提供します
モデルのサポート
このプロジェクトは現在、OpenAI モデルのみをサポートしています。エージェントは次のいずれかを使用するように設定できます:
- OpenAI API を直接使用
- Azure OpenAI API を使用
どちらのオプションについても、デプロイ設定で設定方法を確認できます。
使用例
基本的なクラスター情報
User: "Show me all pods in the default namespace"
トラブルシューティング
User: "Why is my pod in CrashLoopBackOff state?"
プロジェクト構成
src/:メインアプリケーションのコードmain.py:Chainlit アプリケーションのメインエントリーポイントchainlit_session_manager.py:Chainlit ユーザーセッションを管理しますchainlit_session_storage.py:セッションデータの保存を処理しますinterfaces.py:インターフェースと抽象化を定義しますkubernetes_ai_ops_agent_provider.py:Kubernetes オペレーション向けのプロバイダー実装mcp_server_provider_impl.py:MCP サーバープロバイダーの実装openai_client_factory_impl.py:OpenAI クライアント設定用のファクトリー
deps/:依存関係と MCP サーバーmcp-server-kubernetes/:Kubernetes MCP サーバーprometheus-mcp-server/:Prometheus MCP サーバー
deploy/:デプロイ設定helm/:Kubernetes デプロイ用の Helm チャート
貢献
貢献を歓迎します!ガイドラインについては、CONTRIBUTING.mdをご覧ください。
ライセンス
このプロジェクトは MIT ライセンスで公開されています。詳細については、LICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。