将 LLM 作为微服务部署:基于 vLLM 生产栈掌握 GPU 调度与 KEDA 弹性伸缩
将 LLM 作为微服务部署基于 vLLM 生产栈掌握 GPU 调度与 KEDA 弹性伸缩大语言模型不再是实验室里的“巨兽”而应成为架构图中一个普通的微服务。本文将带你用 vLLM 生产栈在 Kubernetes 上部署 OpenAI 兼容的推理 API并深入讲解 GPU 调度、KEDA 弹性扩缩容等生产必备技能让 LLM 像普通微服务一样稳定、高效、可伸缩。目录为什么要把 LLM 当成微服务vLLM高性能推理引擎的首选vLLM Production Stack 全景Kubernetes GPU 调度实战4.1 启用 GPU 支持4.2 节点选择与污点容忍4.3 多实例共享 GPU时间切片与 MIG4.4 模型预热与持久化KEDA 自动伸缩让推理服务随流量波动5.1 为什么不用 HPA5.2 暴露 vLLM 指标5.3 配置 KEDA ScaledObject完整部署示例监控与成本优化总结1. 为什么要把 LLM 当成微服务2026 年AI 不再是独立系统而是微服务架构中的一个专用服务层。推理服务作为这一层的核心必须满足独立部署与扩容不能因为一个模型更新就重起整个业务集群弹性伸缩白天请求高峰自动扩容深夜无人时缩容甚至降到零统一治理遵循服务网格、GitOps、可观测性等微服务标准将 LLM 作为一个普通的微服务部署在 Kubernetes 上正是实现这些目标的最佳路径。2. vLLM高性能推理引擎的首选在众多推理框架中vLLM 凭借PagedAttention、连续批处理和高吞吐脱颖而出已成为工业界的默认选择。vLLM 的核心优势OpenAI 兼容 API直接提供/v1/chat/completions等接口客户端无需修改代码极致的吞吐量连续批处理将同构请求动态合并GPU 利用率高达 90%KV‑cache 内存管理PagedAttention 避免碎片化支持更大的并发量多模型支持兼容 Llama、Qwen、Mistral 等主流模型量化和 LoRA 适配器也可即插即用用 vLLM 启动一个兼容 OpenAI 的推理服务非常简单bashvllm serve meta-llama/Llama-3-8B-Instruct --port 8000但想要真正在生产环境稳定运行还需要一套完整的“生产栈”。3. vLLM Production Stack 全景所谓 Production Stack并不单指 vLLM 本身而是一整套让推理服务具备生产级能力的组合text┌─────────────┐ │ API 网关 │ (可选限流/认证) └──────┬──────┘ │ ┌──────▼──────┐ │ vLLM Pod │ (多副本) └──────┬──────┘ │ ┌────────────┼────────────┐ │ │ │ GPU 调度 KEDA 弹性 Prometheus (Device (根据队列 监控导出 Plugin) 长度伸缩) 指标)本篇重点关注GPU 调度和KEDA 弹性伸缩两大支柱这也是面试和实际生产中最容易被问到的难点。4. Kubernetes GPU 调度实战4.1 启用 GPU 支持Kubernetes 通过Device Plugin机制管理 GPU。首先确保节点已安装 NVIDIA 驱动然后部署 NVIDIA 设备插件bashkubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/main/nvidia-device-plugin.yml验证节点是否上报 GPU 资源bashkubectl describe node gpu-node | grep nvidia.com/gpu4.2 节点选择与污点容忍为了避免普通工作负载占用宝贵的 GPU 节点需要配合nodeSelector/affinity和Taint/Toleration。给 GPU 节点打上标签和污点bashkubectl label node gpu-node-1 acceleratornvidia-a100 kubectl taint node gpu-node-1 nvidia.com/gputrue:NoSchedule在 Pod 中声明使用 GPU 并容忍污点yamlspec: nodeSelector: accelerator: nvidia-a100 tolerations: - key: nvidia.com/gpu operator: Equal value: true effect: NoSchedule containers: - name: vllm resources: limits: nvidia.com/gpu: 14.3 多实例共享 GPU时间切片与 MIG很多场景下例如小模型、QPS 不饱和一张 A100 可以同时服务多个推理实例。共享方式有两种时间切片Time‑slicingGPU 在多个 Pod 间交替使用配置简单适合轻量级并发。MIGMulti‑Instance GPU将 GPU 硬件切分为独立实例每个实例拥有专属显存和计算单元适合严格的资源隔离。以时间切片为例在nvidia-device-plugin的 ConfigMap 中配置yamlapiVersion: v1 kind: ConfigMap metadata: name: time-slicing-config data: time-slicing: |- version: v1 sharing: timeSlicing: resources: - name: nvidia.com/gpu replicas: 4 # 每张物理 GPU 虚拟为 4 份之后 Pod 可以请求nvidia.com/gpu: 1但实际只占用 1/4 的 GPU 时间。通过这种方式可以在单张 T4 上同时跑 4~8 个小模型推理实例。4.4 模型预热与持久化大模型文件动辄几十 GB每次 Pod 重启都重新下载不可接受。解决方案是使用PersistentVolume存储模型或借助Init Container在 Pod 启动前将模型预下载到 emptyDir可配合节点 SSD。yamlvolumes: - name: model-storage persistentVolumeClaim: claimName: llama3-8b-pvc initContainers: - name: model-downloader image: busybox command: [sh, -c, if [ ! -f /models/config.json ]; then echo waiting for model...; fi] volumeMounts: - name: model-storage mountPath: /modelsvLLM 启动时指定模型路径为/models即可直接加载。5. KEDA 自动伸缩让推理服务随流量波动5.1 为什么不用 HPAKubernetes 原生的 HPA 仅支持 CPU 和内存指标。推理服务的资源瓶颈在于GPU 显存和并发请求数而不是 CPU。当 GPU 接近打满时CPU 可能还很空闲反之请求队列堆积时即使 CPU 不高也需要扩容。KEDAKubernetes Event-driven Autoscaling可以基于任意事件Prometheus 指标、消息队列长度等驱动伸缩非常适合推理场景。5.2 暴露 vLLM 指标vLLM 启动时会自动暴露 Prometheus 指标默认端口 8000路径/metrics。其中有两个关键指标vllm:num_requests_running当前正在处理的请求数vllm:num_requests_waiting排队等待的请求数我们可以利用Prometheus Adapter将这些指标注册为 Kubernetes 的自定义指标或直接使用 KEDA 的prometheus触发器。5.3 配置 KEDA ScaledObject安装 KEDAbashhelm repo add kedacore https://kedacore.github.io/charts helm install keda kedacore/keda --namespace keda --create-namespace创建一个ScaledObject根据等待请求数自动伸缩yamlapiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: vllm-scaler spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: vllm-deployment minReplicaCount: 1 maxReplicaCount: 10 triggers: - type: prometheus metadata: serverAddress: http://prometheus-operated.monitoring.svc:9090 metricName: vllm_num_requests_waiting query: | sum(rate(vllm:num_requests_waiting{appvllm}[1m])) threshold: 2 # 等待请求超过 2 就开始扩容 activationThreshold: 1逻辑解释当排队请求数连续一段时间超过 2 时KEDA 会逐步增加 vLLM 的副本数直到队列被消化或达到最大副本数。流量下降后KEDA 会等待冷却期默认 300 秒再缩容避免频繁抖动。你也可以使用 GPU 利用率作为触发指标但请求队列长度更贴近“服务质量”——宁可多扩几个 Pod也不让用户排队。6. 完整部署示例下面给出一个最小可行的 vLLM 生产部署 YAML包含 GPU 调度和 KEDA 缩容支持。vllm-deployment.yamlyamlapiVersion: apps/v1 kind: Deployment metadata: name: vllm-deployment labels: app: vllm spec: replicas: 1 selector: matchLabels: app: vllm template: metadata: labels: app: vllm spec: nodeSelector: accelerator: nvidia-a100 tolerations: - key: nvidia.com/gpu operator: Equal value: true effect: NoSchedule containers: - name: vllm image: vllm/vllm-openai:latest command: [python3, -m, vllm.entrypoints.openai.api_server] args: - --model - /models/Llama-3-8B-Instruct - --port - 8000 - --max-model-len - 4096 ports: - containerPort: 8000 resources: limits: nvidia.com/gpu: 1 readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 60 periodSeconds: 10 volumeMounts: - name: model-storage mountPath: /models volumes: - name: model-storage persistentVolumeClaim: claimName: llama3-8b-pvcvllm-service.yamlyamlapiVersion: v1 kind: Service metadata: name: vllm-service spec: selector: app: vllm ports: - port: 8000 targetPort: 8000vllm-scaledobject.yaml使用上面 5.3 节的配置。部署后你的推理服务就可以像普通微服务一样通过http://vllm-service:8000/v1/chat/completions接收请求并根据负载自动扩缩容。7. 监控与成本优化可观测性Grafana 仪表板从 Prometheus 拉取vllm:num_requests_running、vllm:request_latency_seconds、GPU 利用率等指标实时观察。分布式追踪在 vLLM 前面挂 Envoy 或使用 OpenTelemetry关联请求与后端推理耗时。日志使用 Loki 收集 vLLM 日志发现如 OOM、模型加载失败等问题。成本控制缩容至零对于低频使用的内部工具可将minReplicaCount设为 0KEDA 在有请求时自动拉起空闲时彻底关闭。混合实例核心副本使用按需 GPU弹性副本使用竞价实例通过节点标签分离。GPU 共享如 4.3 节所述用时间切片提升 GPU 利用率减少硬件投入。8. 总结通过 vLLM Kubernetes KEDA 的组合我们将 LLM 从“脆弱的怪兽”变成“健壮的微服务”。你学到了如何在 K8s 上为推理服务配置GPU 调度设备插件、亲和性、共享技术如何用KEDA基于推理请求队列自动扩缩容一套可复制的 vLLM 生产部署方案这套技术栈正是 2026 年 “AI-Integrated 微服务” 理念的实践让 AI 能力像数据库一样以服务的形式安静地支撑业务而不是推翻一切重来。如果你在部署过程中遇到问题或者有其他更好的 GPU 共享、弹性策略欢迎在评论区交流。觉得有用就点个赞吧

相关新闻

软考(中级)软件设计师核心笔记(2)操作系统——概念、进程管理

软考(中级)软件设计师核心笔记(2)操作系统——概念、进程管理

一、操作系统相关概念1、操作系统概述计算机硬件(裸机)》操作系统(windows、linux )》语言处理程序(Java虚拟机)》应用程序(office、QQ ):操作系统功能1.管理系统的软件、…

2026/7/30 20:47:13阅读更多 →
15分钟完成黑苹果配置:OpCore-Simplify让OpenCore EFI配置变得前所未有的简单

15分钟完成黑苹果配置:OpCore-Simplify让OpenCore EFI配置变得前所未有的简单

15分钟完成黑苹果配置:OpCore-Simplify让OpenCore EFI配置变得前所未有的简单 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的…

2026/7/30 20:45:13阅读更多 →
GLM-5.2 函数调用返回 null?tool_choice 枚举差异踩坑全解 + Cline / Claude Code 接入配置,收藏这篇就够了

GLM-5.2 函数调用返回 null?tool_choice 枚举差异踩坑全解 + Cline / Claude Code 接入配置,收藏这篇就够了

上周三帮团队把一个客服 Agent 从 GLM-5 升级到 GLM-5.2(z-ai/glm-5.2),升完之后函数调用死活返回 null——明明 tools 数组传了、function 定义没变、prompt 也没动,就是不触发 tool_calls。折腾了大半天才定位到原因&#xff1a…

2026/7/30 20:43:12阅读更多 →
launch-editor:Node.js中一键打开编辑器的终极解决方案

launch-editor:Node.js中一键打开编辑器的终极解决方案

launch-editor:Node.js中一键打开编辑器的终极解决方案 【免费下载链接】launch-editor Open file in editor from Node.js. 项目地址: https://gitcode.com/gh_mirrors/lau/launch-editor 在Node.js开发中,快速定位并打开文件是提升效率的关键步…

2026/7/30 23:14:28阅读更多 →
同样是SMT贴片,为什么车载PCBA代工门槛高?认准这5项资质和设备标准

同样是SMT贴片,为什么车载PCBA代工门槛高?认准这5项资质和设备标准

引言:从消费级到车规级的鸿沟 在汽车电子研发和品质审核领域,许多工程师和采购人员都曾踩过同一个坑:消费电子贴片厂打样完美,功能、外观都没问题,一旦进入车规级的高低温、振动可靠性测试,就开始出现信号闪…

2026/7/30 23:14:28阅读更多 →
162、【Agent】【OpenCode】TuiThreadCmd(fetch 工厂函数)

162、【Agent】【OpenCode】TuiThreadCmd(fetch 工厂函数)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 标题 162、【Agent】【OpenCode】TuiThreadCm…

2026/7/30 23:14:28阅读更多 →
后端开发者转型大模型应用开发的实战指南

后端开发者转型大模型应用开发的实战指南

1. 为什么后端开发者最适合转型大模型应用开发?作为在互联网行业摸爬滚打多年的老码农,我亲眼见证了三次技术浪潮更迭。2023年大模型技术爆发后,身边至少有20位后端同事成功转型AI领域,薪资涨幅普遍在30-50%之间。后端开发者转型大…

2026/7/30 23:14:28阅读更多 →
DeepSeek AI指令优化实战:提升大模型响应准确率

DeepSeek AI指令优化实战:提升大模型响应准确率

1. DeepSeek AI指令优化实战指南作为一名长期从事AI模型调优的技术从业者,我发现很多用户在使用DeepSeek这类大语言模型时,常常遇到指令理解偏差、响应质量不稳定的问题。经过半年多的实践测试,我总结出一套可量化的指令优化方法,…

2026/7/30 23:14:28阅读更多 →
RUFI快洗洗衣液好吗

RUFI快洗洗衣液好吗

RUFI快洗专用洗衣液的价值,主要在短时间洗涤场景。它不是为积攒一周的重污衣物准备,而是给晚间、运动后、差旅、半天穿着的轻量衣物提供更高效的清洁方式。快洗不能只靠机器很多人以为洗衣机有15分钟模式就够了,实际问题是普通洗衣液在低水量…

2026/7/30 23:12:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →