mcpField
K
Kubernetes AI Ops Agent

Kubernetes AI Ops Agent

ローカル
github.com/jhzhu89クラウド・インフラ477 週間前に更新

Kubernetes AI Ops Agent について

DevOps エンジニアや Kubernetes 管理者向けの実験的なエージェントです。自然言語でクラスターを操作でき、Kubernetes と Prometheus の MCP サーバーを Chainlit のウェブインターフェースと組み合わせています。

主な機能

  1. 01自然言語によるクラスター操作
  2. 02Kubernetes MCP ツールの実行
  3. 03Prometheus メトリクスへのアクセス
  4. 04Chainlit チャットインターフェース
  5. 05Docker と Helm によるデプロイ

活用シーン

  1. 01名前空間内の Pod を一覧表示
  2. 02CrashLoopBackOff 状態の Pod を調査
  3. 03クラスターの監視データを確認

MCP 対応

Kubernetes と Prometheus の MCP サーバーを使ってクラスター操作や監視データの取得を行います。これらのサーバーがエージェントにツールとメトリクスを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kubernetes-ai-ops-agent": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Kubernetes AI Ops Agent

自然言語での対話を通じて Kubernetes の運用と管理を支援する、AI 搭載のアシスタントです。

概要

Kubernetes AI Ops Agent は、DevOps エンジニアや Kubernetes 管理者が、会話型インターフェースを通じて Kubernetes クラスターを管理できるよう支援するインテリジェントなエージェントです。このプロジェクトでは、LLM(大規模言語モデル)を活用してユーザーの意図を解釈し、専用の MCP(Model Context Protocol)サーバーを使用して Kubernetes の操作を実行します。

Kubernetes AI Ops Agent のデモ

プロジェクトの状況

注:このプロジェクトは現在、実験段階です。主に、LLM(大規模言語モデル)を Kubernetes、Prometheus、その他の MCP(Model Context Protocol)サーバーと連携させることの機能と潜在的な利点を検証する概念実証として提供されています。プロジェクトの進展に伴い、機能や動作が大幅に変更される場合があります。

機能

  • 🤖 AI による支援:自然言語を使って Kubernetes クラスターとやり取りできます
  • 🧰 ツール連携:専用ツールを通じて Kubernetes の操作を実行できます
  • 🚀 デプロイ対応:簡単にデプロイできるよう、Docker と Helm チャートでパッケージ化されています
  • 📊 Web インターフェース:インタラクティブなチャット体験を実現する Chainlit で構築されています

前提条件

  • Python 3.10+
  • Docker
  • Kubernetes クラスターへのアクセス
  • Helm(デプロイ用)

インストール

ローカル開発
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/kubernetes-ai-ops-agent.git
    cd kubernetes-ai-ops-agent
    
  2. 依存関係をインストールします:

    pip install -r requirements.txt
    
  3. 必要な 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 サーバーは、実行時にダウンロードするのではなく、コンテナーイメージに直接パッケージ化するために含まれています。
  4. Kubernetes へのアクセスを設定します:

    • kubeconfig が適切に設定されていることを確認します
    • エージェントは現在の kubectl コンテキストを使用します
  5. アプリケーションを起動します:

    chainlit run src/main.py
    
Helm チャートのデプロイ
  1. 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>
  1. 独自の設定を含む 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"
  1. カスタマイズした値を使用してチャートをインストールします:
cd deploy/helm
helm install kubernetes-ai-ops ./kubernetes-ai-ops-agent -f customized.values.yaml
  1. ポートフォワードを使用してアプリケーションにアクセスします:
# 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ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。