找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 297|回复: 0

AI驱动的Kubernetes MCP服务器

[复制链接]
发表于 2025-7-17 02:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
作者:微信文章
AI驱动的Kubernetes MCP服务器

w1.jpg
AI Kubernetes MCP
随着MCP服务器的热度不断攀升,我的好奇心也与日俱增。当Google宣布Kubectl AI时,我就知道必须尝试创建自己的Kubernetes MCP服务器,这个项目由此诞生。

本文将提供创建AI驱动的Kubernetes MCP服务器的必要步骤。虽然教程易于跟随且耗时不多,但我计划未来通过自动化来改进它。

这个项目既有趣又富有挑战性,希望您也能享受这个过程。

所有可通过kubectl ai执行的操作都包含在mcp-schema.json文件中,稍后克隆下面的仓库时会包含该文件。

GitHub仓库[1]

让我们开始吧!
第一步:创建安全组

登录AWS控制台,创建安全组(mcp-server-sg),并设置以下入站规则:

自定义TCP 3000-32767 (Kubernetes NodePort范围)

SSH 22

HTTP 80

w2.jpg
安全组配置第二步:启动EC2实例

现在我们需要创建具有以下规格的EC2实例:

Ubuntu

T2.Medium

30 GiB

创建密钥对(k8-mcp-server)

附加我们在第一步创建的安全组(mcp-server-sg)

使用以下引导脚本安装系统更新、Python和Docker。(这需要放在EC2创建界面的高级部分)
#!/bin/bash

set -e

# 更新系统并安装必要组件
apt-get update -y && apt-get upgrade -y
apt-get install -y curl wget git ca-certificates gnupg lsb-release apt-transport-https software-properties-common

# ---- Python ----
apt-get install -y python3 python3-pip
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# ---- Docker ----
apt-get install -y docker.io
systemctl enable docker
systemctl start docker

w3.jpg

w4.jpg

w5.jpg

w6.jpg

第三步:配置EC2实例

为了本项目,我将通过EC2 Instance Connect连接。

首先需要将ubuntu用户添加到docker组,这样我们就可以不使用sudo运行Docker命令。
sudo usermod -aG docker ubuntu

sudo reboot

等待实例重新启动后重新登录。现在我们可以开始安装其他组件,首先是kubectl。

安装kubectl:
curl -LO https://dl.k8s.io/release/v1.30.1/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
kubectl version --client

安装minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
minikube version

克隆项目仓库:
git clone https://github.com/samcolon/k8s_mcp_server_prod.git

克隆Google kubectl ai仓库:
cd ~
git clone https://github.com/GoogleCloudPlatform/kubectl-ai.git

安装Go:
wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
go version

安装并构建kubectl ai:
cd ~/kubectl-ai
go build -o kubectl-ai ./cmd
sudo mv kubectl-ai /usr/local/bin/
kubectl ai --help

启动minikube:
minikube start --driver=docker

在应用所有Kubernetes清单之前,我们需要使用Gemini API密钥创建一个Kubernetes secret。您可以通过访问https://aistudio.google.com/[2]并在右上角点击Get API key来创建自己的API密钥。

创建API密钥后记下来,以便添加到下面的Kubernetes secret命令中。

创建Kubernetes secret的命令:
kubectl create secret generic gemini-api-key \
  --from-literal=GEMINI_API_KEY=your-api-key-here

请确保创建Kubernetes secret,否则pod将无法创建。

现在我们需要将Gemini API密钥导出到EC2 shell中。可以通过执行以下命令完成:
echo 'export GEMINI_API_KEY=your-api-key-here' >> ~/.bashrc
source ~/.bashrc

接下来,进入k8s_mcp_server_prod目录。从那里我们可以部署Kubernetes清单。
kubectl apply -f mcp-deployment.yaml
kubectl apply -f mcp-service.yaml
kubectl apply -f mock-app.yaml
kubectl apply -f rbac.yaml

获取minikube IP和NodePort(记下这两个值并暂时保存)
minikube ip
kubectl get svc mcp-service

在我的例子中,我的minikube ip是192.168.49.2,NodePort是30173。

下一步是将以下内容添加到我们的kubectl-ai config.yaml中。目前这个文件不存在,我们可以用这个命令创建它:
mkdir -p ~/.kube/kubectl-ai
nano ~/.kube/kubectl-ai/config.yaml

将以下内容添加到kubectl-ai文件中,并确保在保存前输入您的minikube IP和NodePort。

***在nano中按Ctrl o,Enter,Ctrl x保存文件***
mcp:
  endpoint: http://MiniKubeIP:<NodePort>/mcp-schema.json
  name: mcp-server

llm:
  provider: gemini
  model: gemini-1.5-flash

我们可以使用minikube IP和NodePort在curl命令中测试我们的mcp-schema.json是否可访问。
curl http://minikubeIP:<NodePort>/mcp-schema.json

如果一切正确完成,您现在应该能看到位于schema中的命令列表。

这也意味着MCP服务器将能够通过kubectl ai将用户提示转换为命令。由于我们使用的是免费版本,正确的命令是kubectl ai — model gemini-1.5-flash。(使用kubectl ai仅适用于Gemini的专业版用户)
让我们测试一下:

请列出所有正在运行的pod

w7.jpg
测试1
请将my-website-app扩展到8个pod

w8.jpg
测试2
请列出my-website-app的所有运行pod

w9.jpg
测试3
获取my-website-app-866949d66b-677d9的日志

w10.jpg
测试4
可以通过mcp-schema.json文件添加更多操作。

再次感谢您阅读本指南。希望我能为您构建自己的AI驱动Kubernetes环境提供清晰的路径。这个项目融合了DevOps、LLM集成和实用的云部署,既有趣又富有挑战性。我鼓励您尝试进一步扩展它。
参考资料[1]
k8s mcp server prod: https://github.com/samcolon/k8s_mcp_server_prod
[2]
aistudio.google.com: https://aistudio.google.com/prompts/new_chat
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-10-10 09:11 , Processed in 0.221192 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表