Kubernetes (K8s) のデプロイメントを管理することが難しいと感じたことはありますか? AI の助けを借りることで、コンテナを効率的に管理しながら、制御とセキュリティを維持することができます。ここで登場するのがKubernetes MCP サーバー(K8s MCP)です。
このチュートリアルでは、モデルコンテキストプロトコル(MCP)を実装したK8s MCPの理解と使用方法をガイドします。このプロトコルは、あなたのKubernetes クラスターとのインタラクションのために特に設計されています。これにより、タスクの自動化、洞察の獲得、さらにはAIエージェントを使用してデプロイメントを管理するための刺激的な可能性が開かれます。さあ、知能的なクラウド管理の世界に飛び込んでみましょう!

Kubernetes MCP サーバー (K8s MCP) とは何ですか?
Kubernetes MCP サーバーは、AI駆動のツールとあなたのKubernetes クラスターとの間の橋となります。これは、AIがデプロイメントと対話するための安全で構造的な方法を提供するために、モデルコンテキストプロトコル(MCP)を実装しています。
このように考えてください:Kubernetesはあなたのクラウドのオペレーティングシステムであり、K8s MCPはAIがそのオペレーティングシステムを理解し管理するための翻訳者です。

あなたのクラスターを信頼できない可能性のあるAIモデルに直接さらすのではなく、K8s MCP サーバーはゲートキーパーとして機能し、AIが以下を行うことを可能にする制御されたインターフェースを提供します:
- クラスター内の利用可能なリソースをリスト化する(ポッド、デプロイメント、サービスなど)。
- 特定のリソースに関する詳細情報を取得する。
- デプロイメントを管理するためのコマンドを実行する(スケール、アップデート、再起動など)。
すべては適切な認証と監査のもとで行われ、クラスターのセキュリティが保たれます。
Kubernetes MCP サーバーの前提条件
始める前に、必要なものがすべて揃っていることを確認しましょう:
1. Kubernetes クラスター:稼働中のKubernetes クラスターへのアクセスが必要です。これは、ローカルクラスター(Minikube または Rancher Desktopを使用)、クラウドベースのクラスター(AWS、Azure、または Google Cloud上)、または他のKubernetes 環境である可能性があります。
2. kubectlのインストールと構成:kubectl コマンドラインツールは、あなたのKubernetes クラスターと対話するために必須です。
- kubectlがインストールされており、PATHに含まれていることを確認してください(これは実行可能なプログラムを検索するディレクトリのリストです)。
- 少なくとも1つのコンテキストが構成された有効な kubeconfig ファイルが必要です。このファイルは通常、~/.kube/configに置かれます。
- kubectlが資格情報エラーなしにクラスターに接続できることを確認してください。標準的なターミナルでkubectl get podsを実行します。このコマンドが失敗すると、K8s MCP サーバーも接続に失敗します。
3. Node.js と Bun:この特定のK8s MCPの実装は、Node.js と Bun パッケージマネージャーを使用します。両方がインストールされていることを確認してください。

4. Helm v3 (オプション):サーバーのためにHelm v3をインストールし、構成する必要がありますが、使用しなくても構いません。公式ウェブサイトからダウンロードできます。official website.

インストールと設定:K8s MCPサーバーのセットアップ
1. リポジトリをクローンする:
ターミナルを開き、次のコマンドを実行します:
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
これにより、GitHubからコードがダウンロードされ、プロジェクトディレクトリに移動します。
2. Bunで依存関係をインストールする:
このプロジェクトは、パッケージマネージャーとして高速なJavaScriptランタイムであるBunを利用しています。Bunがインストールされていることを確認してから、次のコマンドを実行します:
bun install
このコマンドは、package.jsonファイルを読み込み、プロジェクトに必要な依存関係をすべてインストールします。
3. K8s MCP サーバーを実行する:
bun run dev # 開発およびファイル監視のため
これにより、K8s MCP サーバーが起動します。現在構成されているkubectlコンテキストに自動的に接続します。K8sクラスターへの接続が機能していることを確認しなければ、サーバー接続に問題が発生します。
重要な注意点:サーバーが現在のkubectlコンテキストに自動で接続するため、プロジェクトにHelmチャートがある場合は、Helmが適切に構成されていることを確認する必要があります。
4. MCP Inspectorを使用したローカルテスト:
K8s MCP サーバーの迅速なテストには、モデルコンテキストプロトコルインスペクター(@modelcontextprotocol/inspector)の使用が推奨されます。このツールは、MCP サーバーの機能を視覚化し、対話するのに役立ちます。
npx @modelcontextprotocol/inspector node dist/index.js
ターミナルの画面上の指示に従って、ブラウザでインスペクターリンクにアクセスします。これにより、利用可能なMCPリソースを探求し、コマンドをテストできます。

Claude Desktopとのローカルテスト K8s MCP サーバー
このK8s MCPをClaude Desktop(または他のAIツール)と統合するには、サーバーと通信できるようにClaudeの設定を構成する必要があります。
- Claude Desktopの設定を見つける:
Claude Desktopの設定内の「claude_desktop_config.json」ファイルを見つけます(通常、開発者または高度なセクションにあります)。
2. MCPサーバーの設定を追加する:
「claude_desktop_config.json」ファイルのmcpサーバーセクションに新しいエントリを追加します:
{
"mcpServers": {
"k8s-mcp": { // または分かりやすい名前を選択
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}
重要:「/path/to/your/mcp-server-kubernetes/dist/index.js」を、クローンしたリポジトリ内の「dist/index.js」ファイルへの実際の絶対パスに置き換えてください。
3. Claude Desktopでテストする:
Claude Desktopを再起動します。これで、自然言語コマンドを使用してClaudeを通じてあなたのKubernetes クラスターと対話できるようになるはずです。まず、Claudeにポッドのリストを要求したり、テストデプロイメントを作成してサーバーへの接続が機能するかを確認してください。これらが動作すれば、残りも安全に動作することを期待できます。
例1:「デフォルトのネームスペース内のポッドをリストできますか?」

例2:「デフォルトのネームスペースにnginxポッドを作成し、それをnginx-podと名付けることができますか?」

例3:「nginxポッドを削除できますか?」

セキュリティ考慮事項:クラスターを保護する
AIをあなたのKubernetes クラスターと統合する際には、セキュリティが最も重要です。
- 機能と範囲の確認:AIにクラスターの重要な側面を管理させる前に、実際にどのようなアクションを実行できるのかを慎重に確認してください。kubectl コンテキストやサービスアカウントに関連する権限を理解しましょう。
結論
これで、あなたはAIを使ってKubernetes クラスターと対話する可能性を探求する第一歩を踏み出しました!K8s MCP サーバーを設定することで、AIツールが管理を支援したり、洞察を提供したりする可能性を開きました。セキュリティに焦点を当て、AIにクリティカルなタスクを頼る前に機能を慎重に検証することを忘れないでください。
