ome
基于 Kubernetes Operator 的生产级 LLM 推理管理平台,支持 SGLang/vLLM/TensorRT-LLM 多引擎自动选择和 GPU 智能调度
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 Kubernetes Operator 的生产级 LLM 推理管理平台,支持 SGLang/vLLM/TensorRT-LLM 多引擎自动选择和 GPU 智能调度
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你的团队训练出了一个 70B 参数的 DeepSeek 大模型,想要在 Kubernetes 集群上把它跑起来提供服务。传统做法需要写 Deployment、Service、ConfigMap,自己管理 GPU 调度、模型下载、多运行时适配……光是配置文件就能堆出一人高。而 OME 想做的事,就是把这一切全部接管——你只需要声明「我要跑 Llama 3 70B」,它会自动选运行时、自动分配 GPU、自动配置弹性伸缩。
大模型落地最难的不是训练,而是部署和运维。当模型从研究走向生产环境,会遇到一系列头疼的问题:不同模型需要不同的推理引擎(Llama 适合 SGLang,embedding 模型可能用 vLLM 更好),GPU 资源昂贵需要精细调度,多副本部署需要协调 prefill 和 decode 节点的配比,还要考虑模型加密、分布式存储、高可用……这些都不是普通 Kubernetes 部署能满足的。
OME 就是来解决这个问题的。它由 moirai-internal 团队开发,是一个生产级别的 Kubernetes Operator,专注于 LLM 的生命周期管理、推理引擎自动选择和GPU 资源优化调度。在 GitHub 上已有 470 颗星,被标记为 v1beta1 API 版本,说明核心功能已经稳定。
OME 的设计哲学非常「Kubernetes 原生」:它定义了一套自定义资源(CRD),把模型、运行时、推理服务全部变成 Kubernetes 集群中的一等公民。用户通过 YAML 声明期望状态,Controller 自动完成实际编排。
核心 CRD 包括:
整个 Operator 的控制器(Controller)会自动执行闭环:下载并解析模型 → 匹配合适的运行时 → 选择最优 GPU 节点 → 生成 Kubernetes 资源 → 持续优化集群利用率。
OME 对推理引擎的支持非常全面:
SGLang 是 OME 的首选推荐。SGLang 本身是当前最先进的 LLM 推理引擎之一,支持 cache-aware 负载均衡、多节点部署、prefill-decode 分离服务、多 LoRA 适配器同时服务等高级特性。OME 将 SGLang 作为一等公民集成进来,使其在 K8s 环境下的部署复杂度大幅降低。
vLLM 提供高吞吐量推理支持,OME 在 dockerfiles/lws-vllm 目录下维护了专门的 LeaderWorkerSet vLLM 镜像,用于多节点场景。
TensorRT-LLM 和 Triton 支持面向对推理性能有极致要求的生产环境。
OME 的智能运行时选择机制(Intelligent Runtime Selection)会根据模型架构、格式、量化方式、参数量和框架兼容性进行加权评分,自动选出最优运行时配置。配置文件中维护了 80+ 模型家族的预置支持(包括 Llama、Qwen、DeepSeek、Gemma、Phi 等)。
GPU 是最昂贵的资源,OME 在调度层面做了深度优化。
GPU Bin-Packing:OME 内置了专门的 GPU 资源调度器,会动态对集群中的 GPU 节点进行 bin-packing 优化,把模型尽量集中到少数 GPU 上,释放更多空闲节点。同时通过动态 re-optimization 持续调整布局。
AcceleratorClass 策略:支持 BestFit(最优匹配)、Cheapest(最低成本)、MostCapable(最强算力)三种 GPU 选择策略,方便在不同场景下做成本与性能的权衡。
K8s 生态深度集成:与 Kueue(多 Pod gang scheduling)、LeaderWorkerSet(多节点弹性部署)、KEDA(自定义指标自动扩缩容)、Gateway API(流量路由)、Gateway API Inference Extension(标准化推理端点)等组件都有深度集成。
OME 提供了一个现代化的 Web 管理界面,前端基于 Next.js 14 + React 18 + Tailwind CSS + TanStack Query,后端为 Go Gin 框架。功能包括:
Web Console 通过独立部署提供,与 OME Operator 协同工作,为不熟悉 kubectl 的用户提供了图形化入口。
OME 支持三种安装方式:
helm repo add + helm install 方式。helm install 本地 Chart 目录,适合开发调试。但必须注意的是,OME 的使用门槛不低。核心依赖包括:
所以虽然安装命令简单,但准备工作(搭 K8s 集群、配 GPU 节点)才是真正的挑战。这是一款面向有 Kubernetes 基础设施的团队的产品,不是开箱即用的个人工具。
OME 的代码质量可圈可点。采用 Go 1.25 编写,依赖 controller-runtime(Kubernetes 官方 Controller 开发框架),代码结构清晰(cmd/ 放置各组件入口,pkg/ 放置核心业务逻辑,internal/ 放置 agent 实现)。
仓库包含完整的测试套件(使用 Ginkgo + Gomega BDD 测试框架),预提交检查(pre-commit),Go Report Card 评分,详细的贡献指南和 LICENSE(Apache 2.0)。文档基于 Hugo 构建,部署在独立的 site/ 目录下,配套完整的产品文档站点。
多运行时 Dockerfile(manager.Dockerfile、ome-agent.Dockerfile、model-agent.Dockerfile、qpext.Dockerfile 等)说明这是一个组件较多的分布式系统,各组件职责分离。
OME 并不适合所有人。它的适用场景是:已有 Kubernetes 生产集群、需要在上面跑多个大模型、有专职 DevOps/平台工程团队的 AI 基础设施团队。如果你只是想在本地跑一个 7B 模型,Docker 拉个 vLLM 镜像更简单。
OME 的 roadmap 包括:增强模型解析(覆盖更多架构)、量化优化工作流支持,以及多 Kubernetes 集群联邦——这意味着未来的 OME 可能成为跨集群的 LLM 调度平台。
总的来说,OME 是当前开源生态中最完整的 Kubernetes LLM 推理管理方案之一,它在运行时抽象、GPU 调度和声明式 API 上的设计思路,对于想要标准化大模型部署流程的企业来说,具有重要的参考价值和落地意义。