如何使用英博云开发机快速部署DeepSeek服务
本文为您详细介绍如何通过英博云开发机快速部署和体验DeepSeek强大功能,以下案例中使用4卡 A800资源和 DeepSeek-R1-Distill-Llama-70B 模型做演示。
DeepSeek服务部署环境
首先需要在平台创建开发机,详情可以参考创建开发机。
创建开发机时,建议选择4卡 A800或H800规格。

- 创建开发机时,选择内置Vllm的镜像,本案例使用 Vllm 部署推理服务。
- ebsys/ssh_server:vllm0.5_torch2.4_python3.10_cuda12.2_ubuntu22.04_202410281901
- 本案例需要使用DeepSeek-R1-Distill-Llama-70B 模型,所以建议挂载一个至少256GB的共享存储卷,作为模型的存储,详情可以参考创建存储卷。

DeepSeek推理服务部署
- 创建开发机后,远程连接开发机,详情可以参考远程登录。

连接开发机后,将所需的模型文件从共享盘/public/huggface-models/deepseek-ai中复制到自己的存储卷目录中:
cp -r /public/huggingface-models/deepseek-ai/DeepSeek-R1-Distill-Llama-70B/* /data/DeepSeek-R1-Distill-Llama-70B/
通过vllm命令运行多 GPU 服务,需要将--tensor-parallel-size在启动服务器时传入参数。例如,要在 4 个 GPU 上运行 API 服务器:
vllm serve /data/DeepSeek-R1-Distill-Llama-70B --tensor-parallel-size 4
在开发机终端本地调用测试,发现服务已经正常工作:
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "/data/DeepSeek-R1-Distill-Llama-70B",
"prompt": "github是什么",
"max_tokens": 100,
"temperature": 0
}'
- 服务部署后,目前仅在集群pod内可达,若需要后续通过Chatbox集成,还需要通过Service暴露服务,以下提供两种类型的Service。
- 若不需要公网访问,在集群中创建ClusterIP类型的Service即可,示例service.yaml如下:
注意:其中selector中内容需要获取上方部署了推理服务开发机(pod)的labels,通过 kubectl get pod podname -oyaml 获取。

apiVersion: v1
kind: Service
metadata:
name: web-service # 服务名称
spec:
selector: # 匹配集群中的Pod,使Service能够将流量转发到对应Pod上,通过 kubectl get pod podname -oyaml 获取
cloud.ebtech.com/kind: SSHServer
cloud.ebtech.com/sshserver-alias: deepseek-0
cloud.ebtech.com/sshserver-apiVersion: appsv1
cloud.ebtech.com/sshserver-name: ebsys-ssi-1740449001701-21300
cloud.ebtech.com/sshserver-timestamp: "1740449001"
ports:
- protocol: TCP
port: 8000 # Service 监听的端口Pod
targetPort: 8000 # 内部应用监听的端口
type: ClusterIP
- 若需要公网访问,在集群中创建LoadBalancer类型的Service即可,示例service.yaml如下:
apiVersion: v1
kind: Service
metadata:
name: eip-service # service的名称
spec:
ports:
- name: eip # service 端口的名称
port: 8000 # service 的端口
protocol: TCP # 暴露端口的协议
targetPort: 8000 # 内部应用监听的端口
selector:
cloud.ebtech.com/kind: SSHServer
cloud.ebtech.com/sshserver-alias: deepseek-0
cloud.ebtech.com/sshserver-apiVersion: appsv1
cloud.ebtech.com/sshserver-name: ebsys-ssi-1740449001701-21300
cloud.ebtech.com/sshserver-timestamp: "1740449001"
type: LoadBalancer # service类型,启用通过LB的方式申请公网IP
构建服务命令:kubectl apply -f service.yaml
Chatbox集成推理服务API
Chatbox是一款 AI 客户端应用和智能助手,支持使用 OpenAI 兼容的第三方 API 服务。
- chatbox示例chatbox.yaml如下:
注意:
TOKEN的值需要用户自定义,用于页面访问时,验证身份。
MODEL的值为模型部署路径。
OPEN_API_BASE_URL的值分为两种情况,如上一步使用的LoadBalancer类型,则可填写为http://公网IP:8000/v1/chat/completions,如使用的ClusterIP类型,将公网IP替换为service-name即可。
Ingress Host:请输入自定义名称+集群的外网ingress,可通过对应集群详情页查看,如下图所示。

apiVersion: apps/v1
kind: Deployment
metadata:
name: deepseek
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: deepseek
template:
metadata:
labels:
app: deepseek
spec:
containers:
- name: deepseek
image: registry-cn-beijing2-internal.ebtech.com/ebsys/chat-in-docker:v1.1.0
ports:
- containerPort: 3000
env:
- name: TOKEN # 需要用户根据实际情况修改
value: "sk-bXakN144QEbRJ"
- name: MODEL # 需要用户根据实际情况修改
value: "/data/DeepSeek-R1-Distill-Llama-70B"
- name: OPEN_API_BASE_URL # 需要用户根据实际情况修改
value: "http://web-service:8000/v1/chat/completions"
resources:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "2"
memory: 4Gi
---
apiVersion: v1
kind: Service
metadata:
name: deepseek-service
namespace: default
spec:
type: ClusterIP
selector:
app: deepseek
ports:
- port: 80
targetPort: 3000
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: deepseek-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: deepseek-tenant-35366666-demodeepseek-ingress-cn-beijing2.ebtech.com # 需要用户根据实际情况修改
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: deepseek-service
port:
number: 80
构建Chatbox服务:
kubectl apply -f chatbox.yaml
用户通过Ingress Host在浏览器中访问并输入对应token使用 上方部署的 DeepSeek-R1-Distill-Llama-70B API服务。
