通过云原生API网关对接ECS和ACS自建的DeepSeek

本文介绍如何通过云原生API网关对接ECS/ACS中自建的DeepSeek服务。您可以轻松实现服务接入,并通过网关提供的统一认证鉴权机制保障服务安全性。

前提条件

创建网关实例

重要

自建部署的DeepSeek服务需与云原生API网关位于同一VPC下。

场景一:云原生API网关对接ECS自建的DeepSeek服务

1. 使用ECS(GPU)部署DeepSeek

请参考GPU实例上部署DeepSeek-R1蒸馏模型完成在ECS上自建DeepSeek服务的操作。

重要

参考上述文档完成步骤一步骤二的操作即可,完成后有服务端口(默认30000),无需执行步骤三。使用云原生API网关的情况下,可以通过网关对公网暴露服务。

GPU实例规格参考本文所述,其中:

  1. 本文部署的DeepSeek-R1-Distill-Qwen-7B的总大小约为29GB,系统盘或数据盘需要留出对应的空间。

  2. 购买的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上的模型服务时,需要保证网关实例可以访问到后端模型服务。

可以参考以下方式配置安全组:

  1. 登录云服务器ECS控制台,选择部署的地域,单击当前部署实例,在实例详情 > 绑定资源 >安全组下可获取安全组ID。

  2. 登录云原生API网关控制台

  3. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  4. 实例页面,单击目标网关实例ID。

  5. 在实例页面,选择安全组授权页签,单击授权安全组

  6. 选择步骤一中ECS对应的安全组ID,并输入端口范围,单击保存

    image

3. 在云原生API网关中为DeepSeek服务添加API配置

  1. 登录云原生API网关控制台,在左侧导航栏,选择API

  2. 全部API页签,单击创建API,在创建API弹窗中选择HTTP API选项卡并单击创建

  3. 创建HTTP API页面,填写API名称后单击确定

    image

  4. API页面,单击目标创建的API名称,进入API详情页,单击创建路由,在创建路由面板,参考如下信息配置:

    配置项

    说明

    域名

    建议选择已有域名或添加一条新域名用于访问。

    路径(Path)

    选择前缀是 /

    所属实例

    选择服务所在的云原生API网关实例。

    使用场景

    选择单服务

    后端服务

    下拉框单击“创建服务”。

    服务页面,新建固定地址服务参考以下方式配置:

    配置项

    说明

    来源类型

    选择固定地址

    服务名称

    填写ECS后端服务名称。

    服务地址

    填写ECS实例中查看实例IP地址获取的私网IP,拼接DeepSeek推理服务端口(30000)。

    TLS模式

    选择关闭

  5. 单击保存并发布后,在路由界面的操作界面可以进行调试

    image

  6. 在调试界面拼接URL/v1/chat/completions,并按照下列方式填写JSON格式Body进行请求。

    {
      "model": "DeepSeek-R1-Distill-Qwen-7B",
      "messages": [
        {
          "role": "user",
          "content": "你是谁"
        }
      ]
    }

    image

场景二:云原生API网关对接ACS自建的DeepSeek服务

1. 使用ACS GPU集群部署DeepSeek服务

具体操作请参见:使用ACS GPU算力构建DeepSeek蒸馏模型推理服务

重要
  1. 如当前ACS集群无GPU资源,推荐创建GPU集群方式。

  2. 其中推荐ACK GPU节点池的实例规格为ecs.gn7i-c16g1.4xlarge,如节点池内无对应实例规格,建议按照上述表格选择相同规格。

  3. 参考上述文档完成步骤一步骤二的操作即可,完成后有服务端口(默认为8000),无需执行步骤三。使用云原生API网关的情况下,可以通过网关对公网暴露服务。

2. 在云原生API网关中为DeepSeek服务添加API配置

目前网关中为ACS服务添加API只支持HTTP API配置方式,后续我们会持续优化。

创建HTTP API参考以下方式进行:

  1. 登录云原生API网关控制台,在左侧导航栏,选择API

  2. 全部API页签,单击创建API,选择HTTP API

  3. 填写HTTP API名称后确认,并在全部API界面中点击刚刚创建的API名称。

    image

  4. 单击创建路由,在创建路由面板,参考配置如下信息。

    配置项

    说明

    域名

    建议选择已有域名或添加一条新域名用于访问。

    路径(Path)

    选择前缀是 /

    所属实例

    选择服务所在的云原生API网关实例。

    使用场景

    选择单服务

    后端服务

    下拉单击“创建服务”,且在创建服务的过程中会自动完成安全组授权。

    image

    image

    image

    image

  5. 单击保存并发布后,在路由界面的操作界面可以进行调试

    image

  6. 在调试界面拼接URL/v1/chat/completions,并按照下列方式填写JSON格式Body进行请求。

    {
      "model": "deepseek-r1",
      "messages": [
        {
          "role": "user",
          "content": "你是谁"
        }
      ]
    }

    image

3. 【可选】如何手工配置安全组规则允许云原生API网关访问DeepSeek服务

使用网关暴露ACS上的模型服务时,需要保证网关实例可以访问到后端模型服务。

可以参考以下方式配置安全组:

  1. 登录容器服务ACK控制台,单击当前部署集群,在集群信息 > 基本信息 > 控制面安全组下可查看安全组ID。

    image

  2. 登录云原生API网关控制台

  3. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  4. 实例页面,单击目标网关实例名称。

  5. 在实例详情页面,选择安全组授权页签,单击授权安全组

  6. 选择步骤一ACS对应的安全组ID,并输入端口范围,单击保存

    image.png