ð¯ Kubernetes MCP Server
ããŒã«ã«ð¯ Kubernetes MCP Server ã«ã€ããŠ
MCPãµãŒããŒãšREST APIããŒã¹ã®ãšãŒãžã§ã³ããåããKubernetes管çãããžã§ã¯ãã§ããèªç¶èšèªã«ããã¯ã©ã¹ã¿ãŒèšºæããªãœãŒã¹ç£èŠããã°åæãHelmãªãªãŒã¹ç®¡çã«å¯Ÿå¿ããŸãã
äž»ãªæ©èœ
- 01ã¯ã©ã¹ã¿ãŒã®å¥å šæ§èšºæ
- 02ãªãœãŒã¹ãšPodã®ç£èŠ
- 03ãã°ãšãããã¯ãŒã¯ã®åæ
- 04ã¹ãã¬ãŒãžãšãžã§ãã®ç¢ºèª
- 05HelmãªãªãŒã¹ç®¡ç
掻çšã·ãŒã³
- 01ã¯ã©ã¹ã¿ãŒã®ç¶æ ãšç°åžžPodã®ç¢ºèª
- 02ãªãœãŒã¹äœ¿çšç¶æ³ã®ææ¡ãšãã°åæ
- 03ã¹ãã¬ãŒãžèŠæ±ãšãžã§ãå±¥æŽã®ç¢ºèª
- 04HelmãªãªãŒã¹ã®ç¢ºèªãæŽæ°
MCP 察å¿
MCPãµãŒããŒã¯MCPãã¹ãåãã«KubernetesããŒã«ãæäŸããŸããåãããŒã«ã¯REST APIã䜿ããšãŒãžã§ã³ãã¢ãŒãã§ãå©çšãããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ð¯ Kubernetes AI 管çã·ã¹ãã
AI ãæŽ»çšãã Kubernetes 管çïŒMCP + ãšãŒãžã§ã³ãïŒ
â K8s AI Management
âââ ð€ MCP Server
âââ ð K8s Tools
âââ ð Agent mode with Rest API
âš æŠèŠ
ãã®ãããžã§ã¯ãã¯ãAI ã®åãš Kubernetes 管çãçµã¿åãããŠããŸãããŠãŒã¶ãŒã¯ãªã¢ã«ã¿ã€ã 蚺æããªãœãŒã¹ç£èŠãã¹ããŒããªãã°åæãå®è¡ã§ããŸããäŒè©±å AI ãéã㊠Kubernetes 管çãç°¡çŽ åããææ°ã®ä»£æ¿ææ®µãæäŸããŸãã
ð¡ èªç¶ãªèšèã§è³ªåããã ãã§ããã³ãã³ããèŠããå¿ èŠã¯ãããŸããïŒ
ðïž ãããžã§ã¯ãæ§æ
ãããžã§ã¯ãã¯æ¬¡ã®ã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãã
- agentïŒRest API ãå©çšãããšãŒãžã§ã³ãã¢ãŒãã§ãèªç¶èšèªã䜿ã£ãŠã¯ã©ã¹ã¿ãŒãåæããŸã
- mcp-serverïŒMCP ãã¹ãïŒClaude desktop ãªã©ïŒãšçµ±åã§ããããŒã«ãåãã MCP ãµãŒããŒã§ããã¹ãŠã®æ©èœãæäŸããŸã
- toolsïŒã¯ã©ã¹ã¿ãŒã®åæïŒç®¡çã«äœ¿çšãã Kubernetes ããŒã«ïŒagent ãš mcp-server ã®äž¡æ¹ã§äœ¿çšïŒ
ð æ©èœ
ãã® AI æèŒã·ã¹ãã ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒã«é¢ããèªç¶èšèªã®åãåãããçè§£ããŸããèªç¶èšèªã§åãåãããããæ©èœã®äŸã以äžã«ç€ºããŸãã
ð¥ ã¯ã©ã¹ã¿ãŒã®å¥å šæ§ãšèšºæ
- ãã¯ã©ã¹ã¿ãŒã®ç¶æ ã¯ã©ããªã£ãŠããŸããïŒã
- ãdefault åå空éã®ãã¹ãŠã®ãããã衚瀺ããŠãã ããã
- ãdefault åå空éã«åé¡ã®ãããããã¯ãããŸããïŒã
- ãã¯ã©ã¹ã¿ãŒå ã§æãå€ãã®ãªãœãŒã¹ã䜿çšããŠãããã®ã¯äœã§ããïŒã
- ãã¯ã©ã¹ã¿ãŒã®å®å šãªãã«ã¹ãã§ãã¯ãå®è¡ããŠãã ããã
- ãReady ç¶æ ã§ã¯ãªãããŒãã¯ãããŸããïŒã
- ãdefault åå空éã§ 7 æ¥ä»¥äžçšŒåããŠãããããã衚瀺ããŠãã ããã
- ãdefault åå空éã§åèµ·ååæ°ã®å€ãããããç¹å®ããŠãã ããã
ð ãããã¯ãŒã¯åæ
- ãpayment ãµãŒãã¹ã®ãã°ã衚瀺ããŠãã ããã
- ãã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã® Ingress ãäžèŠ§è¡šç€ºããŠãã ããã
- ããã¹ãŠã®ãµãŒãã¹ãšãã®ãšã³ããã€ã³ãã衚瀺ããŠãã ããã
- ããµãŒãã¹ 'api-gateway' ã«ãšã³ããã€ã³ããããã確èªããŠãã ããã
- ãå€éš IP ãæã€ãå ¬éãããŠãããã¹ãŠã®ãµãŒãã¹ã衚瀺ããŠãã ããã
ðŸ ã¹ãã¬ãŒãžç®¡ç
- ãã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®æ°žç¶ããªã¥ãŒã ãäžèŠ§è¡šç€ºããŠãã ããã
- ããã€ã³ããããŠããªãã¹ãã¬ãŒãžèŠæ±ã衚瀺ããŠãã ããã
- ãã¯ã©ã¹ã¿ãŒã§å©çšå¯èœãªã¹ãã¬ãŒãžã¯ã©ã¹ã¯äœã§ããïŒã
- ãæ°žç¶ã¹ãã¬ãŒãžã䜿çšããŠãããããã¯ã©ãã§ããïŒã
- ã容éãäžéã«è¿ã¥ããŠããã¹ãã¬ãŒãžããªã¥ãŒã ã¯ãããŸããïŒã
â±ïž Job ãš CronJob ã®åæ
- ãbatch åå空éã§å®è¡äžã®ãã¹ãŠã® Job ãäžèŠ§è¡šç€ºããŠãã ããã
- ãéå» 24 æéã«å€±æãã Job ã衚瀺ããŠãã ããã
- ãæ¬¡ã® 1 æé以å ã«å®è¡äºå®ã® CronJob ã¯äœã§ããïŒã
- ã'backup' Job ã®å®è¡å±¥æŽã衚瀺ããŠãã ããã
â Helm ãªãªãŒã¹ç®¡ç
- ããã¹ãŠã® Helm ãªãªãŒã¹ãäžèŠ§è¡šç€ºããŠãã ããã
- ãMongoDB ãã£ãŒããããŒãžã§ã³ 12.1.0 ã«ã¢ããã°ã¬ãŒãããŠãã ããã
- ãPrometheus ãªãªãŒã¹ã«ã¯ã©ã®å€ãèšå®ãããŠããŸããïŒã
- ã倱æãã Elasticsearch ãªãªãŒã¹ãããŒã«ããã¯ããŠãã ããã
- ãPrometheus ãªãªãŒã¹ã®ãªããžã§ã³å±¥æŽã衚瀺ããŠãã ããã
- ãç°ãªã Helm ãªãªãŒã¹éã®å€ãæ¯èŒããŠãã ããã
- ãã¯ã©ã¹ã¿ãŒå ã®å€ããªã£ã Helm ãã£ãŒãã確èªããŠãã ããã
- ãElasticsearch ãã£ãŒãã®äŸåé¢ä¿ã¯äœã§ããïŒã
泚ïŒã·ã¹ãã 㯠AI ã䜿ã£ãŠãã°ãã€ãã³ãããªãœãŒã¹äœ¿çšç¶æ³ã®ãã¿ãŒã³ãåæããã€ã³ããªãžã§ã³ããªèšºæãšæšå¥šäºé ãæäŸããŸãã
ð ïž åææ¡ä»¶
| èŠä»¶ | ããŒãžã§ã³ |
|---|---|
| â JDK | 17 以é |
| ð§° Maven | 3.8 以é |
| â MinikubeïŒä»»æã® Kubernetes ã¯ã©ã¹ã¿ãŒ | ~/.kube/config ã®èšå® |
æ³šïŒ ã·ã¹ãã ã¯
~/.kube/configã® kubeconfig ãã¡ã€ã«ã䜿çšãããããé©åã«èšå®ãããŠããããšã確èªããŠãã ããã
ðïž 1. ãããžã§ã¯ãã®ãã«ã
# Build all modules
mvn clean package
# Run the MCP server
java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar
# Alternatively, run the agent directly
java -jar agent/target/agent-*-fat.jar
ð ïž 2. Minikube ã®ã»ããã¢ãã
minikube ãã€ã³ã¹ããŒã«ããnginx ãããã€ã¡ã³ããäœæããŸãã
# Install minikube
brew install minikube
# Start minikube
minikube start
# Make sure kubeconfig is set
kubectl config use-context minikube
# Deploy nginx
kubectl create deployment nginx --image=nginx:latest
# Check whether nginx is running
kubectl get pods
æ³šïŒ åºåã«
nginxãããã衚瀺ãããã¯ãã§ãã
ð ïž 3. ãããžã§ã¯ãã®ãã¹ã
ð€ 3.1 MCP ãµãŒããŒãš Claude Desktop ã®çµ±å
Claude Desktop ãšã®çµ±åæ¹æ³ã«ã€ããŠã¯ãmcp-server/README.md ãåç §ããŠãã ããã
3.2. Rest API ã䜿çšãããšãŒãžã§ã³ãã¢ãŒã
ãšãŒãžã§ã³ãã®å®è¡æ¹æ³ã«ã€ããŠã¯ãagent/README.md ãåç §ããŠãã ããã
ð ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ã㯠MIT ã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸãã詳现㯠LICENSE ãã¡ã€ã«ãåç §ããŠãã ããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã