在IBM Code Engine上部署MCP Context Forge网关的完整指南
前言
MCP Context Forge是一个功能强大的网关服务,本文将详细介绍如何将其部署到IBM Code Engine平台上。作为云原生应用托管服务,IBM Code Engine提供了简单高效的部署方式,特别适合微服务架构的应用。
一、部署前准备
在开始部署前,请确保满足以下要求:
- IBM Cloud账户:有效的IBM Cloud账号
- 容器构建工具:Docker或Podman任选其一
- IBM Cloud CLI:版本不低于2.16
- Code Engine项目:在IBM Cloud控制台中创建或选择现有项目
- 环境配置文件:准备
.env
和.env.ce
两个配置文件
二、环境配置详解
1. 运行时配置文件(.env)
此文件将被挂载到容器中,包含网关运行所需的关键配置:
# 核心网关设置
AUTH_REQUIRED=true
JWT_SECRET_KEY=your-secret-key # 使用openssl rand -hex 32生成
# 数据库配置(二选一)
# SQLite(仅测试用)
CACHE_TYPE=database
DATABASE_URL=sqlite:tmp/mcp.db
# PostgreSQL(生产推荐)
CACHE_TYPE=database
DATABASE_URL=postgresql://user:pass@host:port/dbname?sslmode=require
2. 部署配置文件(.env.ce)
此文件仅用于部署过程,包含Code Engine相关配置:
# IBM Cloud区域和资源组
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
# Code Engine项目和应用名称
IBMCLOUD_PROJECT=my-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
# 容器镜像配置
IBMCLOUD_IMAGE_NAME=us.icr.io/namespace/mcpgateway:latest
# 资源配额
IBMCLOUD_CPU=1
IBMCLOUD_MEMORY=4G
三、两种部署方式
方式一:使用Makefile自动化部署(推荐)
Makefile提供了简化的部署流程,主要命令包括:
# 首次部署流程
make ibmcloud-check-env # 检查环境变量
make ibmcloud-cli-install # 安装必要CLI工具
make ibmcloud-login # 登录IBM Cloud
make podman # 构建容器镜像
make ibmcloud-tag # 标记镜像
make ibmcloud-push # 推送镜像到容器仓库
make ibmcloud-deploy # 部署应用到Code Engine
# 更新部署流程
make podman ibmcloud-tag ibmcloud-push ibmcloud-deploy
方式二:手动使用IBM Cloud CLI部署
如需更精细控制,可手动执行CLI命令:
# 1. 安装CLI和插件
curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
ibmcloud plugin install container-registry -f
ibmcloud plugin install code-engine -f
# 2. 登录和项目选择
ibmcloud login --apikey "$IBMCLOUD_API_KEY"
ibmcloud ce project select --name "$IBMCLOUD_PROJECT"
# 3. 构建和推送镜像
podman build -t "$IBMCLOUD_IMG_PROD" .
podman tag "$IBMCLOUD_IMG_PROD" "$IBMCLOUD_IMAGE_NAME"
podman push "$IBMCLOUD_IMAGE_NAME"
# 4. 部署应用
ibmcloud ce application create --name "$IBMCLOUD_CODE_ENGINE_APP" \
--image "$IBMCLOUD_IMAGE_NAME" \
--cpu "$IBMCLOUD_CPU" --memory "$IBMCLOUD_MEMORY" \
--port 4444
四、生产环境最佳实践
1. 数据库选择
SQLite:
- 仅适用于测试环境
- 数据不持久化,重启后丢失
- 不支持多实例扩展
PostgreSQL(推荐生产使用):
- 数据持久化
- 支持高可用
- 自动备份
- 可扩展性强
2. 资源配额建议
| 工作负载类型 | CPU | 内存 | 适用场景 | |-------------|-----|------|---------| | 开发测试 | 1 | 2G | 功能验证 | | 小型生产 | 2 | 4G | 低流量 | | 中型生产 | 4 | 8G | 中等流量| | 大型生产 | 8 | 16G | 高并发 |
3. Redis缓存层(可选)
对于高流量场景,建议添加Redis缓存:
# 创建Redis服务实例
ibmcloud resource service-instance-create mcpgw-redis \
databases-for-redis standard us-south
# 配置应用使用Redis
ibmcloud ce application update --name "$IBMCLOUD_CODE_ENGINE_APP" \
--env CACHE_TYPE=redis \
--env-from-secret mcpgw-redis-url
五、应用管理和监控
1. 查看应用状态
ibmcloud ce application get --name "$IBMCLOUD_CODE_ENGINE_APP"
2. 查看实时日志
ibmcloud ce application logs --name "$IBMCLOUD_CODE_ENGINE_APP" --follow
3. 访问网关API
生成访问令牌:
export MCPGATEWAY_BEARER_TOKEN=$(python -m mcpgateway.utils.create_jwt_token -u admin)
测试API端点:
curl -H "Authorization: Bearer ${MCPGATEWAY_BEARER_TOKEN}" \
https://your-gateway-url/tools
六、清理资源
删除部署的应用:
ibmcloud ce application delete --name "$IBMCLOUD_CODE_ENGINE_APP" -f
结语
通过本文介绍的方法,您可以将MCP Context Forge网关高效地部署到IBM Code Engine平台。根据实际业务需求选择合适的数据库和资源配置,可以确保网关服务在生产环境中稳定运行。对于高可用场景,建议使用PostgreSQL数据库并配置适当的资源配额。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考