大规模AI推理再非难事:如何在Kubernetes上部署DeepSeek

译者 | 核子可乐审校 | 重楼随着人工智能的持续发展,高效、大规模部署AI驱动应用程序变得至关重要。 而编排平台Kubernetes在管理容器化AI工作负载、确保可扩展性、弹性以及降低管理难度等方面,无疑将发挥不可替代的作用。 在本文中,我们将共同了解如何在Kubernetes上部署DeepSeek,运用其强大的AI推理模型DeepSeek-R1与Open WebUI集成以实现无缝交互。

大规模AI推理再非难事:如何在Kubernetes上部署DeepSeek

译者 | 核子可乐

审校 | 重楼

随着人工智能的持续发展,高效、大规模部署AI驱动应用程序变得至关重要。而编排平台Kubernetes在管理容器化AI工作负载、确保可扩展性、弹性以及降低管理难度等方面,无疑将发挥不可替代的作用。

在本文中,我们将共同了解如何在Kubernetes上部署DeepSeek,运用其强大的AI推理模型DeepSeek-R1与Open WebUI集成以实现无缝交互。

一、为何选择Kubernetes?

作为一款先进的推理模型,DeepSeek将受益于Kubernetes提供的强大容器化与编排能力。Kubernetes凭借其成熟的生态系统以及专门针对复杂AI工作负载量身定制的广泛功能,从Docker Swarm、Apache Mesos等一从同类产品中脱颖而出。以下是选择Kubernetes的主要原因:

1.可扩展性

Kubernetes使用Horizontal Pod Autoscaler(HPA)与Cluster Autoscaler等工具简化了AI工作负载的扩展流程。对于推理请求激增等常见场景,Kubernetes能够自动无缝扩展pod与节点,确保无需人工干预即可实现一致性能。

2.弹性

Kubernetes可实现pod自动重新调度与自我修复功能,借此保障更高弹性水平。一旦DeepSeek pod遭遇资源限制或节点故障等问题,Kubernetes会快速检测受到影响的pod并将其重新部署到健康节点,最大限度缩短停机时间并保障持续可用性。

3.服务发现

Kubernetes内置基于DNS的服务发现与微服务无缝管理功能。DeepSeek的推理服务可由此轻松发现并接入以支持微服务(例如预处理模块及日志记录服务),全程无需复杂的手动配置,段增强可维护性与灵活性。

4.持久存储

Kubernetes PersistentVolumeClaims (PVCs)可有效处理AI模型存储、训练数据集及检查点,确保关键数据即使在更新、pod重启或者节点故障期间也始终保持一致性与可用性。在Kubernetes的支持下,DeepSeek模型更新或者推理pod扩展将真正实现无缝化、无中断。

5.负载均衡

Kubernetes提供内置负载均衡功能,可在多个副本之间高效分配工作负载。此功能对于DeepSeek在多个实例间均匀分配推理请求、优化资源利用率并显著降低响应延迟至关重要。

虽然Docker Swarm等替代方案的使用体验更简单,但Kubernetes拥有管理DeepSeek等复杂AI模型所必需的独特功能完备优势,确保了可扩展性、稳健性与操作简便性。

二、在Kubernetes上部署DeepSeek

1. 设置Kubernetes集群

在本设置中,我们将建立一个三节点Kubernetes集群,具体包含以下节点:

复制
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
deepseek-control-plane Ready control-plane 6d5h v1.32.0
deepseek-worker Ready <none> 6d5h v1.32.0
deepseek-worker2 Ready <none> 6d5h v1.32.0

即使Kubernetes节点不使用GPU,DeepSeek-R1也仍可正常运行,只是响应速度会受到影响。这里建议大家使用GPU加速以获取最佳性能,特别是在处理复杂推理任务时请务必配备GPU。

你可以使用以下工具在本地设置Kubernetes集群:

  • KIND (Kubernetes IN Docker)
  • Minikube
  • MicroK8s

如果部署在云平台上,则可使用Ingress对象以安全访问设置,并通过配备身份验证与TLS安全机制的Web界面对外公开服务。

2. 使用Ollama部署DeepSeek-R1

这里使用Ollama在Kubernetes 中部署DeepSeek-R1,Ollama负责处理AI模型推理。以下是Ollama部署过程中的Kubernetes manifest信息:

复制
apiVersion: apps/v1
kind: Deployment
metadata:
 name: ollama
 labels:
 app: ollama
spec:
 replicas: 1
 selector:
 matchLabels:11
 app: ollama
 template:
 metadata:
 labels:
 app: ollama
 spec:
 containers:
 - name: ollama
 image: ollama/ollama:latest
 ports:
 - containerPort: 11434
 volumeMounts:
 - mountPath: /root/.ollama
 name: ollama-storage
 env:
 - name: OLLAMA_MODEL
 value: deepseek-r1:1.5b
 - name: OLLAMA_KEEP_ALIVE
 value: "-1" 
 - name: OLLAMA_NO_THINKING
 value: "true"
 - name: OLLAMA_SYSTEM_PROMPT
 value: "You are DeepSeek-R1, a reasoning model. Provide direct answers without detailed reasoning steps or <think> tags."
 volumes:
 - name: ollama-storage
 emptyDir: {}

3. 将Ollama作为服务公开

为了让其他服务与Ollama通信,这里需要定义一项NodePort服务:

复制
apiVersion: v1
kind: Service
metadata:
 name: ollama-service
spec:
 selector:
 app: ollama
 ports:
 - protocol: TCP
 port: 11434
 targetPort: 11434
 type: NodePort

4. 部署Open WebUI

为了获得交互式体验,这里集成了Open WebUI,它会接入Ollama并提供用户友好的界面。具体部署方式如下:

复制
apiVersion: apps/v1
kind: Deployment
metadata:
 name: openweb-ui
 labels:
 app: openweb-ui
spec:
 replicas: 1
 selector:
 matchLabels:
 app: openweb-ui
 template:
 metadata:
 labels:
 app: openweb-ui
 spec:
 containers:
 - name: openweb-ui
 image: ghcr.io/open-webui/open-webui:main
 env:
 - name: WEBUI_NAME
 value: "DeepSeek India - Hardware Software Gheware" 
 - name: OLLAMA_BASE_URL
 value: "http://ollama-service:11434" 
 - name: OLLAMA_DEFAULT_MODEL
 value: "deepseek-r1:1.5b" 
 ports:
 - containerPort: 8080
 volumeMounts:
 - name: openweb-data
 mountPath: /app/backend/data
 volumes:
 - name: openweb-data
 persistentVolumeClaim:
 claimName: openweb-ui-pvc

5. 在DeepSeek-R1上运行推理

要测试部署,我们可以在Ollama容器内执行命令:

复制
kubectl exec -it deploy/ollama -- bash
ollama run deepseek-r1:1.5b

此命令将启动与AI模型的交互式会话,且允许直接输入查询。

三、访问Open WebUI

在部署完成后,即可创建指向URL的入口对象以访问Open WebUI。

复制
http://deepseek.gheware.com/auth

用户通过此界面,即可在聊天环境中与DeepSeek-R1进行交互。

总结

通过在Kubernetes上部署DeepSeek,我们建立起可扩展、弹性强且可用于生产的AI推理系统。Kubernetes负责高效协调DeepSeek-R1,确保通过Open WebUI顺利运行模型并与用户交互。此外,大家还可添加GPU加速、自动扩展并使用Prometheus及Grafana监控,以进一步扩展这套基础架构。

对AI从业者来说,Kubernetes将为DeepSeek-R1等推理模型的部署和管理奠定良好基础,真正让推理大模型走入寻常百姓家。

原文标题:DeepSeek on Kubernetes: AI-Powered Reasoning at Scale,作者:Rajesh Gheware

相关资讯

如何使用Kubernetes合理调整GPU和CPU资源以训练和推理AI模型​

译者 | 李睿审校 | 重楼如今,人工智能服务的迅速崛起创造了对计算资源的巨大需求,而如何有效管理这些资源成为一项关键挑战。 虽然使用Kubernetes运行人工智能工作负载已经取得了长足的进步,但基于动态需求优化调度仍然是一个亟待改进的领域。 在全球范围内,许多组织面临与GPU集群的成本和可用性相关的限制,并且通常依赖于这些计算集群来进行推理工作负载和持续的模型训练和微调。

谷歌云更新 Kubernetes 引擎,可支持万亿参数的人工智能模型

生成式人工智能模型越来越大,参数已多达 2 万亿个,大型语言模型对计算和存储的需求也在增加。 谷歌云(Google Cloud)今天宣布升级旗下  Kubernetes 引擎的容量,以应对更大规模的模型,Kubernetes . 引擎的容量将从目前支持 15000 个节点集群升级到支持 65000 个节点集群。

OpenAI的停机事件教会我们要构建更具弹性的系统

译者 | 李睿审校 | 重楼2024年12月11日, OpenAI公司提供的服务由于新部署的遥测服务出现问题而遭遇重大停机。 此次事件影响了API、ChatGPT和Sora服务,导致持续数小时的服务中断。 作为一家致力于提供准确高效的人工智能解决方案的供应商,OpenAI公司为此发布一份详细的事后分析报告,公开地讨论了出现问题的原因,以及他们如何计划防止在未来发生类似事件。