本文介绍如何通过云原生API网关对接ECS/ACS中自建的DeepSeek服务。您可以轻松实现服务接入,并通过网关提供的统一认证鉴权机制保障服务安全性。
前提条件
已创建网关实例 。
自建部署的DeepSeek服务需与云原生API网关位于同一VPC下。
场景一:云原生API网关对接ECS自建的DeepSeek服务
1. 使用ECS(GPU)部署DeepSeek
请参考在GPU实例上部署DeepSeek-R1蒸馏模型完成在ECS上自建DeepSeek服务的操作。
GPU实例规格参考本文所述,其中:
-
本文部署的DeepSeek-R1-Distill-Qwen-7B的总大小约为29GB,系统盘或数据盘需要留出对应的空间。
-
购买的GPU实例规格推荐
ecs.gn7i-c16g1.4xlarge,如无该规格,需要按照下列配置选择其他规格。
|
模型名称 |
模型版本 |
模型大小 |
vCPU |
内存 |
GPU显存 |
系统盘 |
推荐实例规格 |
|
DeepSeek-R1-Distill-Qwen-7B |
7B(70亿参数) |
4.7 GB |
6核或8核处理器 |
32 GB RAM |
24 GB |
至少100 GB空闲空间 |
ecs.gn7i-c16g1.4xlarge |
2. 配置安全组规则允许云原生API网关访问DeepSeek服务
使用网关暴露ECS上的模型服务时,需要保证网关实例可以访问到后端模型服务。
可以参考以下方式配置安全组:
-
登录云服务器ECS控制台,选择部署的地域,单击当前部署实例,在实例详情 > 绑定资源 >安全组下可获取安全组ID。
登录云原生API网关控制台。
在左侧导航栏,选择实例,并在顶部菜单栏选择地域。
在实例页面,单击目标网关实例ID。
-
在实例页面,选择安全组授权页签,单击授权安全组。
-
选择步骤一中ECS对应的安全组ID,并输入端口范围,单击保存。
其中协议类型选择TCP。
3. 在云原生API网关中为DeepSeek服务添加API配置
-
登录云原生API网关控制台,在左侧导航栏,选择API。
-
在全部API页签,单击创建API,在创建API弹窗中选择HTTP API选项卡并单击创建。
-
在创建HTTP API页面,填写API名称后单击确定。
本示例中 API 名称 填写为
ecs-deepseek-http-api,资源组 保持 默认资源组。 -
在API页面,单击目标创建的API名称,进入API详情页,单击创建路由,在创建路由面板,参考如下信息配置:
配置项
说明
域名
建议选择已有域名或添加一条新域名用于访问。
路径(Path)
选择前缀是 / 。
所属实例
选择服务所在的云原生API网关实例。
使用场景
选择单服务。
后端服务
下拉框单击“创建服务”。
在服务页面,新建固定地址服务参考以下方式配置:
配置项
说明
来源类型
选择固定地址。
服务名称
填写ECS后端服务名称。
服务地址
填写ECS实例中查看实例IP地址获取的私网IP,拼接DeepSeek推理服务端口(30000)。
TLS模式
选择关闭。
-
单击保存并发布后,在路由界面的操作界面可以进行调试。
-
在调试界面拼接URL为
/v1/chat/completions,并按照下列方式填写JSON格式Body进行请求。{ "model": "DeepSeek-R1-Distill-Qwen-7B", "messages": [ { "role": "user", "content": "你是谁" } ] }请求方法选择 POST,单击发送请求后返回状态码 200,响应中 assistant 正常回复,表明模型服务调用成功。
场景二:云原生API网关对接ACS自建的DeepSeek服务
1. 使用ACS GPU集群部署DeepSeek服务
具体操作请参见:使用ACS GPU算力构建DeepSeek蒸馏模型推理服务。
-
如当前ACS集群无GPU资源,推荐为集群添加GPU节点方式。
-
其中推荐ACK GPU节点池的实例规格为
ecs.gn7i-c16g1.4xlarge,如节点池内无对应实例规格,建议按照上述表格选择相同规格。 -
参考上述文档完成步骤一和步骤二的操作即可,完成后有服务端口(默认为8000),无需执行步骤三。使用云原生API网关的情况下,可以通过网关对公网暴露服务。
2. 在云原生API网关中为DeepSeek服务添加API配置
目前网关中为ACS服务添加API只支持HTTP API配置方式,后续我们会持续优化。
创建HTTP API参考以下方式进行:
-
登录云原生API网关控制台,在左侧导航栏,选择API。
-
在全部API页签,单击创建API,选择HTTP API。
-
填写HTTP API名称后确认,并在全部API界面中点击刚刚创建的API名称。
示例API名称为
ecs-deepseek-http-api,高级配置中资源组选择默认资源组。 -
单击创建路由,在创建路由面板,参考配置如下信息。
配置项
说明
域名
建议选择已有域名或添加一条新域名用于访问。
路径(Path)
选择前缀是 / 。
所属实例
选择服务所在的云原生API网关实例。
使用场景
选择单服务。
后端服务
下拉单击“创建服务”,且在创建服务的过程中会自动完成安全组授权。
本示例中,路由名称填写
deepseek-r1-distill-qwen-7b,域名选择ack.deepseek.com,并勾选大小写敏感。后端服务名称选择deepseek-r1-v1,服务端口设为8000,服务协议选择HTTP。在服务名称下拉框中单击+ 创建服务完成服务创建。在创建服务弹窗中,首先完成创建服务来源:来源类型选择容器服务,服务来源选择对应的 ACK 集群。然后在创建服务步骤中,命名空间选择
default,在服务列表中勾选deepseek-r1-v1服务。 -
单击保存并发布后,在路由界面的操作界面可以进行调试。
-
在调试界面拼接URL为
/v1/chat/completions,并按照下列方式填写JSON格式Body进行请求。{ "model": "deepseek-r1", "messages": [ { "role": "user", "content": "你是谁" } ] }请求方法选择 POST,单击发送请求后返回状态码 200,响应中
model为deepseek-r1,assistant 角色回复确认自身为深度求索公司开发的智能助手 DeepSeek-R1,表明 API 路由配置正确且可用。
3. 【可选】如何手工配置安全组规则允许云原生API网关访问DeepSeek服务
使用网关暴露ACS上的模型服务时,需要保证网关实例可以访问到后端模型服务。
可以参考以下方式配置安全组:
-
登录容器服务ACK控制台,单击当前部署集群,在集群信息 > 基本信息 > 控制面安全组下可查看安全组ID。
-
登录云原生API网关控制台。
-
在左侧导航栏,选择实例,并在顶部菜单栏选择地域。
-
在实例页面,单击目标网关实例名称。
-
在实例详情页面,选择安全组授权页签,单击授权安全组。
-
选择步骤一中ACS对应的安全组ID,并输入端口范围,单击保存。