跳到主要内容

MCPServer 部署,让你的模型长出“手脚”

通过文章MCP初探我们已经对MCP有了一个初步的了解,接下来我们将手把手教你如何用私有应用市场部署一个MCP Server,让你的大模型长出“手脚”来。

本次部署的MCP Server是我们基于 mcp-server-kubernetes 二次开发的一个服务,它可以连接到你的Kubernetes集群并管理这个集群。在你的host中配置好这个MCP Server,你就可以通过对话的方式,来让大模型帮助你管理K8s集群中的资源。

本次示例中,我们使用的是CherryStudio作为host用它来使用大模型聊天,并调用MCP Server完成用户的任务;

前置条件

本教程假定您已经具备以下条件:

访问私有应用市场

请参考部署私有应用市场

部署应用

请参考私有应用市场-部署应用 在部署mcp-server-kubernetes时,需要修改的values.yaml文件内容。

image-20250507184240249

提示 values.yaml文件内容修改

必须修改项: vksID: 需要修改成自己集群的ID,获取方式 kubectl cluster-info | awk -F'/' '{print $NF}' | head -n 1 base64_kubeconfig_data: 需要修改成自己的集群kubeconfig配置文件内容,参考开通弹性容器集群 获取自己的kubeconfig配置信息。

可选修改项: modelName: 可以自定义模型名称

cpu: 根据具体情况而定;

memory: 根据具体情况而定;

在该示例中,创建弹性集群页面上存在但表格中未列出的参数,均采用默认配置。

获取访问url:

部署成功之后,进入应用详情,如下图:

image-20250507185538147

点击Notes.txt,可以显示模型网页访问地址,如下图:

image-20250507185905933

配置CherryStudio

配置模型

按照一下步骤配置好你的模型,这里我使用的是deepseek模型服务。

  1. 点击“设置”按钮;
  2. 选择“模型服务”;
  3. 选择模型平台(这里我使用的是DeepSeek的平台)
  4. 获取API秘钥
  5. 点击“添加”按钮,来添加模型;(这里需要选择支持函数调用的模型,就是后面带有扳手标志的模型)

image-20250508115905024

配置MCP服务

按照以下步骤配置MCP Server。

  1. 点击“设置”按钮;
  2. 选择“MCP服务器”;
  3. 点击“添加服务器”

image-20250507191433304

在MCP 服务器页面填写MCP Server信息。
类型:选择“服务器发送事件(sse)”;
URL:填写我们之前获取到的url。

image-20250507191552909

配置助手

在助手页面,新建话题;
选择我们之前配置好的大模型服务;
在对话框选项中,点击“MCP服务器”按钮,选择配置好的MCP服务。
image-20250507191848386

到这里我们的MCP Server就已经部署成功,并且在Host端也配置完成了,接下来就来体验吧。

使用MCP Server

在我演示的这个集群中,创建了一个deepseek的命名空间,现在我们以它为示例,来展示一下mcp-server-kuberbetes的一些基础功能吧。

image-20250509185932334

列出pod

首先我想知道deepseek命名空间下有哪些pod资源,那我只用输入以下对话。

查看一下deepseek命名空间下,有哪些pod资源。  

大模型分析我的需求之后,选择使用MCP Server中“list_pods”这个工具,获取指定命名空间下的pod信息。

image-20250507192904534

查看pod详细信息

上一步骤中,我们看到在deepseek命名空间下,有三个pod正在运行,那我想要查看一下“mcp-dev-pod”这个pod的详细信息,那我只用输入以下对话:

帮我查看一下deepseek命名空间下,mcp-dev-pod的详细信息

可以看到大模型获取了指定pod的详细信息。

image-20250509154959753

image-20250509155122294

列出service

接下来我想看一下deepseek命名空间下有哪些service资源,输入以下对话。

查看一下deepseek命名空间下,有哪些service资源

大模型的回答如下图所示:

image-20250509155604394

查看service详细信息

同样的,我们可以继续查看一下这个service的详细信息,输入以下对话:

查看一下mcp-svc的详细信息

大模型的回答如下图所示:

image-20250509160134860

image-20250509160112163

列出secret

在 Kubernetes (K8s) 中,Secret 资源 是专门设计用于安全存储和管理敏感信息的核心对象。

我们在创建pod 或者 deployment这些资源时,一般需要从私有的镜像仓库中拉取镜像,为了安全起见,经常是把镜像仓库的用户、密码这些敏感信息存储在secret资源中。

现在让我们看一下deepseek命名空间下有哪些secret资源:

查看一下deepseek命名空间下,有哪些secret资源

image-20250509162151567

以上我们已经大致了解了mcp-server-kubernetes这个MCP 服务的查询功能,接下来让我们来创建自己的资源吧。

创建namespace

首先创建一个自己的命名空间,例如demo

帮我创建一个名称为demo的命名空间

image-20250509164803430

创建secret

然后创建一个拉取镜像需要的secret资源

在demo命名空间创建一个docker镜像仓库的secret,名称为"demosecret"。  
以下是基本信息:
docker-server: registry.hd-01.alayanew.com:8443
docker-username: ******
docker-password: ******

image-20250509170016454

创建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的需要一段时间。

image-20250509173218325

我们再来查看一下demo命名空间下有哪些pod资源,来验证一下刚才的pod是否创建成功了。

image-20250509173857703

image-20250509173930236

删除pod

当我们在pod中的任务完成之后,也可以一句话关闭pod,就像这样:

删除demo命名空间下的所有pod 

image-20250509174452595

删除namespace

当我们完成一个阶段的任务之后,也可以一句话删除namespae,就像这样:

删除demo命名空间

image-20250509174904323

image-20250509175005669

以上就是我们使用mcp-server-kubernetes的全部流程了。