KServe:云原生模型服务平台
一句话理解:KServe 是把 vLLM/Triton/TorchServe/TensorFlow Serving 等单个推理引擎封装成统一、可扩缩、可灰度、可观测的 Kubernetes 服务的控制平面——用户只写一个
InferenceServiceCR,KServe 自动选好 runtime、拉起 Pod、接入流量、处理扩缩和金丝雀;它是 AI 平台从"能跑一个模型"到"能服务一千个模型"的关键一层。
学习目标
读完本主题,你应该能:
- 解释为什么需要 KServe(裸部署 vLLM/Triton 的痛点)。
- 说清 KServe 的核心抽象:
InferenceService、Predictor/Transformer/Explainer、ServingRuntime/ClusterServingRuntime、InferenceGraph。 - 理解 Serverless 模式(Knative,缩到零)和 RawDeployment 模式(原生 K8s + HPA)的取舍。
- 理解 V1、V2(Open Inference Protocol)、OpenAI-compatible 三种数据面协议。
- 追踪一个
InferenceService从kubectl apply到请求被路由的完整链路。 - 了解 KServe 源码主结构和关键控制器调用链。
- 动手跑一个纯 Python mini-demo,模拟 runtime 选择、Pod 渲染、流量路由、canary。
- 知道生产落地要点:runtime 选择、协议统一、金丝雀、autoscaling、多租户、可观测、成本。
与相邻主题的关系
| 主题 | 关系 | 链接 |
|---|---|---|
| Operator 模式 | KServe 本身是一个 Operator(kserve-controller-manager),InferenceService 就是 CRD | Operator 模式 |
| vLLM / Triton / SGLang / TensorRT-LLM | 它们是 KServe 的 runtime 之一,被 ServingRuntime 抽象封装 | LLMOps 篇 |
| Kubernetes | KServe 的底座:Deployment/Service/Ingress/CRD/Scheduler/Leader Election | Kubernetes |
| Ray | 分布式训练/推理平台,可与 KServe 互补(Ray Serve 也是替代方案) | Ray 主题 |
| LLM Gateway | 统一多供应商/多模型接入,可与 KServe 的模型端点组合 | LLM Gateway |
| 存储系统 | 模型权重通过对象存储/共享 PVC 加载;storage-initializer 是存储系统的上层应用 | 存储系统 |
| AI SRE | KServe 的指标、SLO、扩缩告警是 SRE 核心 | AI SRE |
本章结构
| 章节 | 标题 | 内容 |
|---|---|---|
| 1 | 背景 | 裸推理服务的痛点、KServe 诞生、与裸 vLLM/Triton/自研网关的对比 |
| 2 | 核心思想 | InferenceService、Predictor/Transformer/Explainer、ServingRuntime、InferenceGraph、协议面 |
| 3 | 架构设计 | Control Plane vs Data Plane、Serverless vs RawDeployment、runtime 注册表、网关层 |
| 4 | Runtime 工作流程 | 一次 kubectl apply 到请求被路由的完整时序 |
| 5 | 核心模块 | Controller、Webhook、Runtime Manager、Agent/Queue-Proxy、Ingress/Gateway、Autoscaler、Metrics |
| 6 | 源码分析 | kserve repo 结构、IS controller reconcile 调用链、关键代码 |
| 7 | Mini Demo | 纯 Python 模拟 KServe 控制面:runtime 选择、Pod 渲染、canary、autoscaling |
| 8 | 企业生产实践 | 多 runtime 管理、协议统一、金丝雀、缩到零、多租户、可观测、成本 |
| 9 | 最佳实践 | runtime 选型、协议选择、请求/响应大小、超时、错误处理、安全 |
| 10 | 面试题 | 初/中/高级 KServe 高频题 |
| 11 | 延伸阅读 | 官方文档、论文/博客、生态工具、学习路径 |
一句话总结
KServe = Kubernetes 上的"模型服务操作系统":Operator 负责生命周期,ServingRuntime 负责模型格式,InferenceGraph 负责组合,网关负责流量,autoscaler 负责弹性——让你用一份声明式 CRD 服务任意模型。