网站首页 > 技术教程 正文
随着人工智能的持续发展,高效、大规模部署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.01.2.3.4.5.
即使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: {}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.
3. 将Ollama作为服务公开
为了让其他服务与Ollama通信,这里需要定义一项NodePort服务:
apiVersion: v1
kind: Service
metadata:
name: ollama-service
spec:
selector:
app: ollama
ports:
- protocol: TCP
port: 11434
targetPort: 11434
type: NodePort1.2.3.4.5.6.7.8.9.10.11.12.
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-pvc1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.
5. 在DeepSeek-R1上运行推理
要测试部署,我们可以在Ollama容器内执行命令:
kubectl exec -it deploy/ollama -- bash
ollama run deepseek-r1:1.5b1.2.
此命令将启动与AI模型的交互式会话,且允许直接输入查询。
三、访问Open WebUI
在部署完成后,即可创建指向URL的入口对象以访问Open WebUI。
http://deepseek.gheware.com/auth1.
用户通过此界面,即可在聊天环境中与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
猜你喜欢
- 2025-05-28 k8s实战
- 2025-05-28 k8s中部署基于nfs的StorageClass
- 2025-05-28 Kubernetes详解——NFS对PVC和PV使用实战
- 2025-05-28 Kubernetes日志采集ELK|部署ElasticSearch存储
- 2025-05-28 Milvus部署指南:从单机到分布式,手把手教你玩转向量数据库
- 2025-05-28 kubernetes环境手动部署 Prometheus 监控系统安装文档
- 2025-05-28 k8s集群资源监控
- 2025-05-28 一文了解k8s核心高频常用的内置对象
- 2025-05-28 动手动脑学Kubernetes系列之StatefulSet
- 2025-05-28 「云原生」k8s中volumeMounts.subPath的巧妙用法
你 发表评论:
欢迎- 05-30壁纸|Q版灌篮高手
- 05-30Q版插画|今天的小姑娘有点小情绪,不爱笑,还是笑起来招人喜欢
- 05-30头像背景图|十二生肖Q版水墨(上)
- 05-308张Q版动漫人物-可爱的男生女生马克笔设计绘画,色彩漂亮鲜艳
- 05-30头像‖q卡通呆萌版
- 05-30Q版古风美人,十二花神系列,每一张都很可爱
- 05-30次元|动漫|Q版|萝莉|头像
- 05-30Q版古风人物|红楼梦系列 天上掉下来个林妹妹(附线稿)
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)