DeepSeek 负责思考,Kubernetes 负责运行:一文讲透二者区别与部署命令
DeepSeek 和 Kubernetes 对比|附完整命令
在技术圈里,DeepSeek 和 Kubernetes 都是近几年高频出现的关键词。前者代表了国产大模型能力的快速发展,常被用于智能问答、代码生成、文本分析、知识库问答等 AI 场景;后者则是云原生时代最重要的容器编排平台,被广泛用于应用部署、弹性伸缩、服务治理和集群管理。
不过,严格来说,DeepSeek 和 Kubernetes 并不是同一类技术产品。DeepSeek 更偏向于“人工智能模型与应用能力”,而 Kubernetes 更偏向于“基础设施与应用运行平台”。如果把一个现代 AI 应用系统拆开来看,DeepSeek 可能是其中的“大脑”,Kubernetes 则是承载这个大脑稳定运行的“操作系统级平台”。
本文将从定位、功能、使用场景、部署方式、技术架构、优缺点等方面,对 DeepSeek 和 Kubernetes 做一次系统对比,并附上常用的完整命令示例,帮助你理解二者的关系,以及如何在 Kubernetes 中部署 DeepSeek 相关服务。
一、DeepSeek 是什么?
DeepSeek 是一个大语言模型相关的产品与模型体系,常见的使用方式包括:
- 通过 DeepSeek 官方 API 调用模型能力;
- 在本地通过 Ollama、vLLM、Transformers 等方式运行开源模型;
- 将 DeepSeek 接入企业知识库,构建智能客服、代码助手、数据分析助手;
- 在应用中集成 DeepSeek,提供自然语言理解和生成能力。
从本质上讲,DeepSeek 关注的是:
如何让机器理解语言、生成内容、辅助推理、编写代码以及完成复杂任务。
它解决的问题是“智能能力”的问题。
例如,用户输入:
请帮我写一个 Kubernetes Deployment YAML。
DeepSeek 可以根据用户需求生成相应配置文件。
二、Kubernetes 是什么?
Kubernetes,简称 K8s,是一个开源的容器编排平台,最初由 Google 发起,现在由 CNCF 维护。它主要用于管理容器化应用的部署、扩缩容、滚动更新、服务发现、负载均衡、配置管理等。
Kubernetes 关注的是:
如何让应用在服务器集群中稳定、高效、可扩展地运行。
它解决的是“应用运行和资源调度”的问题。
例如,你有一个后端服务镜像:
my-app:v1
Kubernetes 可以帮你把它部署到多台服务器上,并自动处理副本数量、故障恢复、服务暴露等问题。
三、DeepSeek 和 Kubernetes 的核心区别
下面用一张表来概括二者差异。
| 对比维度 | DeepSeek | Kubernetes |
|---|---|---|
| 技术类型 | 大语言模型 / AI 能力 | 容器编排平台 |
| 主要用途 | 文本生成、问答、代码生成、推理分析 | 应用部署、服务治理、弹性伸缩 |
| 面向对象 | AI 应用开发者、算法工程师、业务系统 | 运维工程师、后端工程师、平台工程师 |
| 是否直接提供智能能力 | 是 | 否 |
| 是否负责基础设施调度 | 否 | 是 |
| 典型使用方式 | API 调用、本地模型部署、模型服务化 | kubectl、YAML、Helm、Operator |
| 运行依赖 | GPU/CPU、模型推理框架、API 服务 | 容器运行时、节点、网络、存储 |
| 适合场景 | 智能客服、代码助手、知识库问答 | 微服务部署、AI 服务部署、云原生平台 |
可以看到,DeepSeek 和 Kubernetes 的关系不是“谁替代谁”,而是“可以相互配合”。
简单来说:
- DeepSeek 是 AI 能力来源;
- Kubernetes 是 AI 服务运行平台。
四、它们之间是什么关系?
在实际生产环境中,很多企业并不是单独使用 DeepSeek,也不是单独使用 Kubernetes,而是会把二者结合起来。
例如,一个企业想构建内部 AI 助手,系统可能包含以下组件:
- 前端 Web 页面;
- 后端 API 服务;
- DeepSeek 模型推理服务;
- 向量数据库;
- 文档解析服务;
- Redis 缓存;
- 日志与监控系统。
这些服务如果全部用传统方式部署,会面临很多问题:
- 服务太多,管理复杂;
- 某个服务异常后需要手动恢复;
- 流量上涨时扩容困难;
- 模型服务资源消耗大,需要 GPU 调度;
- 配置、密钥、网络、存储难以统一管理。
这时 Kubernetes 就可以发挥作用。它可以把 DeepSeek 推理服务以及周边应用统一部署到集群中,实现自动重启、弹性伸缩、服务发现和统一运维。
因此,一个常见架构是:
用户
↓
前端页面
↓
后端 API 服务
↓
DeepSeek 模型服务
↓
向量数据库 / 业务数据库 / 缓存系统
其中,后端 API、模型服务、数据库、缓存等组件都可以运行在 Kubernetes 集群中。
五、DeepSeek 的常见使用方式
1. 通过 API 调用 DeepSeek
如果你不想自己部署模型,可以直接调用 DeepSeek API。这种方式部署简单,适合快速开发。
示例 Python 代码如下:
from openai import OpenAI
client = OpenAI(
api_key="你的 DeepSeek API Key",
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业的云原生工程师。"},
{"role": "user", "content": "请解释 Kubernetes Deployment 的作用。"}
]
)
print(response.choices[0].message.content)
这种方式的优点是:
- 无需购买 GPU;
- 无需维护模型服务;
- 上手快;
- 适合中小型应用。
缺点是:
- 依赖外部 API;
- 数据需要传输到第三方服务;
- 成本与调用量相关;
- 对网络稳定性有要求。
2. 通过 Ollama 本地运行 DeepSeek 模型
如果你希望在本地运行 DeepSeek 相关模型,可以使用 Ollama。
安装 Ollama
Linux/macOS 可以执行:
curl -fsSL https://ollama.com/install.sh | sh
安装完成后查看版本:
ollama --version
拉取 DeepSeek 模型
例如拉取 DeepSeek R1 相关模型:
ollama pull deepseek-r1
如果你想拉取指定规模模型,可以使用类似命令:
ollama pull deepseek-r1:7b
或:
ollama pull deepseek-r1:14b
运行模型
ollama run deepseek-r1
进入交互模式后,可以直接输入问题:
请帮我生成一个 Nginx 的 Kubernetes Deployment 配置。
查看本地模型列表
ollama list
删除模型
ollama rm deepseek-r1
查看 Ollama 服务状态
systemctl status ollama
如果需要启动服务:
sudo systemctl start ollama
设置开机自启:
sudo systemctl enable ollama
六、Kubernetes 的常见使用方式
Kubernetes 的基本使用通常围绕 kubectl 命令和 YAML 配置文件展开。
1. 查看集群信息
kubectl cluster-info
2. 查看节点
kubectl get nodes
查看更详细信息:
kubectl get nodes -o wide
3. 查看命名空间
kubectl get namespaces
创建命名空间:
kubectl create namespace ai-demo
4. 部署一个 Nginx 示例应用
kubectl create deployment nginx-demo \
--image=nginx:latest \
--replicas=2 \
-n ai-demo
查看 Deployment:
kubectl get deployment -n ai-demo
查看 Pod:
kubectl get pods -n ai-demo
暴露服务:
kubectl expose deployment nginx-demo \
--type=NodePort \
--port=80 \
-n ai-demo
查看 Service:
kubectl get svc -n ai-demo
删除示例应用:
kubectl delete deployment nginx-demo -n ai-demo
kubectl delete svc nginx-demo -n ai-demo
七、在 Kubernetes 中部署 DeepSeek 服务的思路
如果你想把 DeepSeek 模型能力部署到 Kubernetes 中,常见方案有两种:
方案一:部署 Ollama 服务
这种方式比较简单,适合测试、内网 Demo、小规模应用。
方案二:部署 vLLM 推理服务
这种方式更适合生产环境,尤其是在 GPU 服务器上运行大模型时,vLLM 在吞吐量和推理效率方面通常更有优势。
下面以 Ollama 为例,演示如何在 Kubernetes 中部署一个 DeepSeek 相关模型服务。
八、Kubernetes 部署 Ollama + DeepSeek 示例
1. 创建命名空间
kubectl create namespace deepseek
2. 编写 Deployment 配置
创建文件:
vim ollama-deployment.yaml
写入以下内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama
namespace: deepseek
spec:
replicas: 1
selector:
matchLabels:
app: ollama
template:
metadata:
labels:
app: ollama
spec:
containers:
- name: ollama
image: ollama/ollama:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 11434
volumeMounts:
- name: ollama-data
mountPath: /root/.ollama
volumes:
- name: ollama-data
emptyDir: {}
这里使用了 emptyDir,表示 Pod 删除后模型数据也会消失。如果是生产环境,建议使用 PVC 持久化存储。
3. 创建 Service 配置
创建文件:
vim ollama-service.yaml
写入:
apiVersion: v1
kind: Service
metadata:
name: ollama
namespace: deepseek
spec:
selector:
app: ollama
ports:
- name: http
port: 11434
targetPort: 11434
type: ClusterIP
4. 应用配置
kubectl apply -f ollama-deployment.yaml
kubectl apply -f ollama-service.yaml
5. 查看运行状态
kubectl get pods -n deepseek
查看 Service:
kubectl get svc -n deepseek
查看日志:
kubectl logs -n deepseek deployment/ollama
6. 进入 Pod 拉取 DeepSeek 模型
先查看 Pod 名称:
kubectl get pods -n deepseek
进入 Pod:
kubectl exec -it -n deepseek deployment/ollama -- bash
在容器内拉取模型:
ollama pull deepseek-r1:7b
运行测试:
ollama run deepseek-r1:7b
如果你想在容器内直接通过 API 测试,可以执行:
curl http://localhost:11434/api/generate \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请用中文解释 Kubernetes 的核心组件。",
"stream": false
}'
退出容器:
exit
九、从集群外访问 DeepSeek 服务
上面的 Service 类型是 ClusterIP,只能在集群内部访问。如果需要从本地访问,可以使用端口转发。
kubectl port-forward -n deepseek svc/ollama 11434:11434
然后在本地执行:
curl http://localhost:11434/api/generate \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请生成一个 Kubernetes Service YAML 示例。",
"stream": false
}'
如果想让集群外部长期访问,可以把 Service 改成 NodePort 或使用 Ingress。
NodePort 示例:
apiVersion: v1
kind: Service
metadata:
name: ollama-nodeport
namespace: deepseek
spec:
selector:
app: ollama
type: NodePort
ports:
- name: http
port: 11434
targetPort: 11434
nodePort: 31434
应用:
kubectl apply -f ollama-nodeport.yaml
访问方式:
curl http://节点IP:31434/api/generate \
-d '{
"model": "deepseek-r1:7b",
"prompt": "DeepSeek 和 Kubernetes 有什么区别?",
"stream": false
}'
十、使用 PVC 持久化模型数据
生产环境不建议使用 emptyDir,因为 Pod 重建后模型文件会丢失。可以使用 PVC。
创建文件:
vim ollama-pvc.yaml
内容如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ollama-data
namespace: deepseek
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
应用:
kubectl apply -f ollama-pvc.yaml
修改 Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama
namespace: deepseek
spec:
replicas: 1
selector:
matchLabels:
app: ollama
template:
metadata:
labels:
app: ollama
spec:
containers:
- name: ollama
image: ollama/ollama:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 11434
volumeMounts:
- name: ollama-data
mountPath: /root/.ollama
volumes:
- name: ollama-data
persistentVolumeClaim:
claimName: ollama-data
重新应用:
kubectl apply -f ollama-deployment.yaml
查看 PVC:
kubectl get pvc -n deepseek
十一、如果使用 GPU,需要注意什么?
大模型推理通常对算力要求较高。如果模型较大,使用 CPU 会非常慢。因此,生产环境往往需要 GPU。
在 Kubernetes 中使用 GPU,一般需要安装 NVIDIA Container Toolkit 和 NVIDIA Device Plugin。
1. 查看节点 GPU
在节点上执行:
nvidia-smi
如果能看到 GPU 信息,说明驱动基本可用。
2. 部署 NVIDIA Device Plugin
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.16.2/deployments/static/nvidia-device-plugin.yml
查看插件状态:
kubectl get pods -n kube-system | grep nvidia
3. 在 Deployment 中申请 GPU
示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama-gpu
namespace: deepseek
spec:
replicas: 1
selector:
matchLabels:
app: ollama-gpu
template:
metadata:
labels:
app: ollama-gpu
spec:
containers:
- name: ollama
image: ollama/ollama:latest
ports:
- containerPort: 11434
resources:
limits:
nvidia.com/gpu: 1
volumeMounts:
- name: ollama-data
mountPath: /root/.ollama
volumes:
- name: ollama-data
persistentVolumeClaim:
claimName: ollama-data
应用:
kubectl apply -f ollama-gpu-deployment.yaml
查看 Pod 是否调度成功:
kubectl get pods -n deepseek -o wide
查看日志:
kubectl logs -n deepseek deployment/ollama-gpu
十二、DeepSeek 的优势和局限
DeepSeek 的优势
-
智能能力强
可用于自然语言问答、代码生成、逻辑推理、文本总结等场景。 -
中文能力较好
对中文语义、中文表达和国内技术语境有较好适配。 -
适合构建 AI 应用
可以作为智能客服、知识库问答、代码助手、办公助手的核心能力。 -
部署方式灵活
既可以调用 API,也可以本地化部署部分开源模型。
DeepSeek 的局限
-
资源消耗较高
本地部署大模型通常需要较高 CPU、内存或 GPU 资源。 -
需要工程化封装
模型本身不等于完整应用,还需要后端、数据库、权限、日志、监控等系统。 -
输出存在不确定性
大模型可能出现幻觉,需要结合检索增强、规则校验和人工审核。 -
生产部署复杂
高并发、低延迟、稳定性、成本控制都需要额外优化。
十三、Kubernetes 的优势和局限
Kubernetes 的优势
-
适合大规模服务部署
可以统一管理微服务、数据库、中间件、AI 推理服务等组件。 -
自动故障恢复
Pod 异常退出后,Kubernetes 可以自动重建。 -
弹性伸缩能力强
可以根据 CPU、内存或自定义指标自动扩缩容。 -
生态丰富
Helm、Prometheus、Istio、Argo CD、KEDA 等工具可以构成完整云原生平台。 -
适合 AI 工程化
可以统一调度 GPU、管理模型服务、部署推理 API、接入监控告警。
Kubernetes 的局限
-
学习成本较高
需要理解 Pod、Deployment、Service、Ingress、ConfigMap、Secret、PVC 等概念。 -
运维复杂度较高
集群网络、存储、证书、权限、监控都需要专业维护。 -
不直接提供 AI 能力
Kubernetes 本身不会生成文本,也不会理解用户问题。 -
小项目可能过重
如果只是单机运行一个简单服务,Kubernetes 可能不是最经济的选择。
十四、如何选择?
如果你的目标是:
- 做智能客服;
- 做知识库问答;
- 做代码助手;
- 做文本生成;
- 做 AI 办公助手;
那么你需要关注的是 DeepSeek。
如果你的目标是:
- 部署多个服务;
- 管理容器应用;
- 实现自动扩缩容;
- 做滚动更新;
- 管理生产环境集群;
那么你需要关注的是 Kubernetes。
如果你的目标是:
- 构建企业级 AI 应用;
- 部署 DeepSeek 模型服务;
- 管理 GPU 推理集群;
- 实现 AI 服务高可用;
- 将模型、数据库、缓存、后端服务统一运维;
那么你需要同时关注 DeepSeek + Kubernetes。
十五、常用 kubectl 排查命令
查看所有资源
kubectl get all -n deepseek
查看 Pod 详情
kubectl describe pod Pod名称 -n deepseek
查看 Deployment 详情
kubectl describe deployment ollama -n deepseek
查看日志
kubectl logs Pod名称 -n deepseek
查看 Deployment 日志:
kubectl logs deployment/ollama -n deepseek
实时查看日志:
kubectl logs -f deployment/ollama -n deepseek
进入容器
kubectl exec -it Pod名称 -n deepseek -- bash
如果容器没有 bash,可以使用 sh:
kubectl exec -it Pod名称 -n deepseek -- sh
删除资源
kubectl delete -f ollama-deployment.yaml
kubectl delete -f ollama-service.yaml
kubectl delete -f ollama-pvc.yaml
删除整个命名空间:
kubectl delete namespace deepseek
十六、总结
DeepSeek 和 Kubernetes 看似都很热门,但它们处在完全不同的技术层级。
DeepSeek 解决的是智能生成和语言理解问题,Kubernetes 解决的是应用部署和资源编排问题。
二者不是竞争关系,而是互补关系。对于个人开发者来说,可以先通过 API 或 Ollama 快速体验 DeepSeek;对于企业和团队来说,如果要把 DeepSeek 能力真正投入生产,就需要考虑高可用、监控、扩容、GPU 调度、数据持久化、权限控制等问题,而这些正是 Kubernetes 擅长的领域。
一句话概括:
DeepSeek 负责“思考和生成”,Kubernetes 负责“运行和管理”。
如果你只是想体验 AI,DeepSeek 就足够了;如果你想把 AI 服务稳定地跑在生产环境中,Kubernetes 几乎是绕不开的基础设施。