MCPServer 部署,让你的模型长出“手脚”
通过文章MCP初探我们已经对MCP有了一个初步的了解,接下来我们将手把手教你如何用私有应用市场部署一个MCP Server,让你的大模型长出“手脚”来。
本次部署的MCP Server是我们基于 mcp-server-kubernetes 二次开发的一个服务,它可以连接到你的Kubernetes集群并管理这个集群。在你的host中配置好这个MCP Server,你就可以通过对话的方式,来让大模型帮助你管理K8s集群中的资源。
本次示例中,我们使用的是CherryStudio作为host用它来使用大模型聊天,并调用MCP Server完成用户的任务;
前置条件
本教程假定您已经具备以下条件:
- 在您的系统上安装了kubectl,具体步骤参考安装命令行工具(kubectl)。
- 在您的系统上安装了Helm,具体步骤参考helm的使用。
- 开通了Alaya NeW弹性容器集群,具体步骤参考开通弹性容器集群
- 部署私有应用市场,具体步骤参考部署私有应用市场
访问私有应用市场
请参考部署私有应用市场
部署应用
请参考私有应用市场-部署应用 在部署mcp-server-kubernetes时,需要修改的values.yaml文件内容。
必须修改项:
vksID: 需要修改成自己集群的ID,获取方式 kubectl cluster-info | awk -F'/' '{print $NF}' | head -n 1
base64_kubeconfig_data: 需要修改成自己的集群kubeconfig配置文件内容,参考开通弹性容器集群 获取自己的kubeconfig配置信息。
可选修改项: modelName: 可以自定义模型名称
cpu: 根据具体情况而定;
memory: 根据具体情况而定;
在该示例中,创建弹性集群页面上存在但表格中未列出的参数,均采用默认配置。
获取访问url:
部署成功之后,进入应用详情,如下图:
点击Notes.txt,可以显示模型网页访问地址,如下图:
配置CherryStudio
配置模型
按照一下步骤配置好你的模型,这里我使用的是deepseek模型服务。
- 点击“设置”按钮;
- 选择“模型服务”;
- 选择模型平台(这里我使用的是DeepSeek的平台)
- 获取API秘钥
- 点击“添加”按钮,来添加模型;(这里需要选择支持函数调用的模型,就是后面带有扳手标志的模型)
配置MCP服务
按照以下步骤配置MCP Server。
- 点击“设置”按钮;
- 选择“MCP服务器”;
- 点击“添加服务器”
在MCP 服务器页面填写MCP Server信息。
类型:选择“服务器发送事件(sse)”;
URL:填写我们之前获取到的url。
配置助手
在助手页面,新建话题;
选择我们之前配置好的大模型服务;
在对话框选项中,点击“MCP服务器”按钮,选择配置好的MCP服务。
到这里我们的MCP Server就已经部署成功,并且在Host端也配置完成了,接下来就来体验吧。
使用MCP Server
在我演示的这个集群中,创建了一个deepseek的命名空间,现在我们以它为示例,来展示一下mcp-server-kuberbetes的一些基础功能吧。
列出pod
首先我想知道deepseek命名空间下有哪些pod资源,那我只用输入以下对话。
查看一下deepseek命名空间下,有哪些pod资源。
大模型分析我的需求之后,选择使用MCP Server中“list_pods”这个工具,获取指定命名空间下的pod信息。
查看pod详细信息
上一步骤中,我们看到在deepseek命名空间下,有三个pod正在运行,那我想要查看一下“mcp-dev-pod”这个pod的详细信息,那我只用输入以下对话:
帮我查看一下deepseek命名空间下,mcp-dev-pod的详细信息
可以看到大模型获取了指定pod的详细信息。
列出service
接下来我想看一下deepseek命名空间下有哪些service资源,输入以下对话。
查看一下deepseek命名空间下,有哪些service资源
大模型的回答如下图所示:
查看service详细信息
同样的,我们可以继续查看一下这个service的详细信息,输入以下对话:
查看一下mcp-svc的详细信息
大模型的回答如下图所示:
列出secret
在 Kubernetes (K8s) 中,Secret 资源 是专门设计用于安全存储和管理敏感信息的核心对象。
我们在创建pod 或者 deployment这些资源时,一般需要从私有的镜像仓库中拉取镜像,为了安全起见,经常是把镜像仓库的用户、密码这些敏感信息存储在secret资源中。
现在让我们看一下deepseek命名空间下有哪些secret资源:
查看一下deepseek命名空间下,有哪些secret资源
以上我们已经大致了解了mcp-server-kubernetes这个MCP 服务的查询功能,接下来让我们来创建自己的资源吧。
创建namespace
首先创建一个自己的命名空间,例如demo
帮我创建一个名称为demo的命名空间
创建secret
然后创建一个拉取镜像需要的secret资源
在demo命名空间创建一个docker镜像仓库的secret,名称为"demosecret"。
以下是基本信息:
docker-server: registry.hd-01.alayanew.com:8443
docker-username: ******
docker-password: ******
创建pod
最后,让我们在demo命名空间来创建一个的pod资源吧:
在demo命名空间启动一个pod:
容器名称设置为demogpu,分配16个cpu,64G内存。
使用以下镜像:registry.hd-01.alayanew.com:8443/alayanew-4fd285c4-c4f3-4e92-80ee-26169717cba8/ubuntu:22.04;
镜像拉取的secret为:demosecret
镜像拉取的策略为:Always
容器的启动命令为:["/bin/bash", "-c", "tail -f /dev/null"]
可以看到大模型使用MCP Server中“create_pod”工具,帮我创建好了pod,并使用“describe_pod”工具做了一些检查工作。
“describe_pod”发生错误的原因是创建pod的需要一段时间。
我们再来查看一下demo命名空间下有哪些pod资源,来验证一下刚才的pod是否创建成功了。
删除pod
当我们在pod中的任务完成之后,也可以一句话关闭pod,就像这样:
删除demo命名空间下的所有pod
删除namespace
当我们完成一个阶段的任务之后,也可以一句话删除namespae,就像这样:
删除demo命名空间
以上就是我们使用mcp-server-kubernetes的全部流程了。