NVIDIA 的 Run:AI 现已采用 Apache-2.0 许可证开源

Reddit r/LocalLLaMA 新闻

摘要

NVIDIA 的 Run:AI AI 工作负载与 GPU 编排平台现已以 Apache-2.0 许可证作为开源单体仓库(monorepo)发布,包括其控制平面、集群服务、CLI 以及用于在 Kubernetes 上管理 GPU 资源的 MCP 服务器。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/14 07:21

dsx-ai-factory/run-ai

来源:https://github.com/dsx-ai-factory/run-ai NVIDIA Run:ai:AI 工作负载与 GPU 编排平台

NVIDIA Run:ai

许可证 | CI | 最新版本 (https://github.com/dsx-ai-factory/run-ai/releases) | 贡献者 (https://github.com/dsx-ai-factory/run-ai/graphs/contributors) 文档 | 路线图 | 安装 | API 参考 (https://docs.nvidia.com/run-ai/self-hosted/reference/home) | 贡献指南 | 许可证

NVIDIA Run:ai 是一个开源 AI 工作负载和 GPU 编排平台,用于在 Kubernetes 上管理共享的 AI 基础设施。NVIDIA Run:ai 提供了一致的方式来在各种 Kubernetes 环境中运行开发、训练和推理工作负载,无论是在本地部署、云端,还是混合基础设施中。它将 GPU 调度、资源管理、工作负载编排、治理和可观测性结合在一起,帮助组织在团队和集群之间高效共享 GPU 资源。

此 monorepo 包含 NVIDIA Run:ai 控制平面和集群服务、安装程序、CLI、MCP 服务器、文档、共享客户端包以及本地开发环境。

架构

架构概览 → (https://docs.nvidia.com/run-ai/self-hosted/documentation/getting-started/architecture)

NVIDIA Run:ai 由两个组件组成,均安装在 Kubernetes 集群上:

  • NVIDIA Run:ai 控制平面 提供集中式资源管理,处理工作负载提交,并提供集群监控和分析功能。控制平面是管理层;它连接到一个或多个 NVIDIA Run:ai 集群,为管理员和用户提供跨集群的统一操作入口。

  • NVIDIA Run:ai 集群 一组集群服务,用于在每个运行工作负载的 Kubernetes 集群上提供增强的调度和工作负载管理。集群组件通过 Run:ai 的 GPU 感知能力扩展了 Kubernetes 原生调度。

从高层次来看:

  • 用户和外部系统通过 Web UI、CLI 或 REST API 与 NVIDIA Run:ai 交互。
  • NVIDIA Run:ai 控制平面在已连接的 Kubernetes 集群上管理工作负载、组织资源、策略和配置。
  • NVIDIA Run:ai 集群服务将控制平面的配置和工作负载请求同步到相应的集群。
  • NVIDIA Run:ai 应用调度和资源策略,确定工作负载在可用 GPU 和计算资源上的运行位置和方式。
  • 工作负载和集群状态会同步回 NVIDIA Run:ai 控制平面,提供跨已连接集群的集中式可见性。

核心能力

能力说明
AI 感知的 GPU 调度使用公平份额、抢占、装箱、优先级和拓扑感知放置来调度 GPU 工作负载。
动态 GPU 分配通过小数 GPU 分配和可用容量的动态利用,在工作负载之间共享 GPU 资源。
资源配额和策略在部门和项目之间分配 GPU 资源,并强制执行组织级资源策略。
多集群管理在多个 Kubernetes 集群上集中管理工作负载、资源和配置。
AI 工作负载管理管理工作区、训练、分布式训练和推理,并支持扩展以管理更多 Kubernetes 工作负载类型。
访问控制和治理通过基于角色的权限控制对 NVIDIA Run:ai 资源的访问,并在工作负载和资源上强制执行组织策略。
监控和可观测性提供对集群、节点、GPU、工作负载、资源利用率和平台活动的可见性。
多种接口支持通过 Web UI、CLI 和 REST API 进行 NVIDIA Run:ai 操作。

NVIDIA Run:ai 与其他工具的关系

NVIDIA Run:ai 是构建在 Kubernetes 之上的调度和编排层:它不会取代 Kubernetes、容器运行时或 CI/CD 系统。

层级工具NVIDIA Run:ai 的关系
集群编排Kubernetes、OpenShiftNVIDIA Run:ai 运行在这些平台之上。它以 GPU 感知调度扩展集群,而非替换原生调度。
调度器默认 kube-scheduler、Volcano、KueueNVIDIA Run:ai 内置了 KAI Scheduler,并增加了公平份额、抢占、小数 GPU 以及跨部门和项目的配额层级。
GPU 使能NVIDIA GPU Operator、Network Operator互补关系:这些工具负责在节点上暴露和配置 GPU;NVIDIA Run:ai 决定哪些工作负载获得 GPU 以及使用多长时间。
ML 平台和流水线Kubeflow、Ray、Argo Workflows、Slurm对于基于 Kubernetes 的工具是互补关系:它们提交工作负载,NVIDIA Run:ai 调度和治理这些工作负载消耗的 GPU 容量。Slurm 是裸金属 HPC 式批处理的替代方案。
工作负载类型Training Operator、LeaderWorkerSet、Knative、KServeNVIDIA Run:ai 与这些工具集成,将工作区、训练、分布式训练和推理作为一等工作负载进行管理。

如果您的场景需要在共享同一 Kubernetes GPU 资源池的多个团队之间实现 GPU 共享、配额强制执行和多租户治理,那么这正是 NVIDIA Run:ai 所填补的空白。如果只需要在专用 GPU 上运行单个团队的任务,Kubernetes 原生调度可能就足够了。

仓库结构

组件路径说明
控制平面control-plane/管理工作负载、策略、身份、组织结构和平台配置的 API 及服务
NVIDIA Run:ai 集群runai-cluster/部署到每个受管 Kubernetes 集群的控制器、准入 Webhook 和服务
安装程序runai-installer/用于在 Kubernetes 上部署 NVIDIA Run:ai 的 CLI 工具和配置服务
MCP 服务器runai-mcp-server/Model Context Protocol 服务器,将 NVIDIA Run:ai 操作作为工具暴露给 AI 助手
客户端和共享包runai-clients/、runai-common-packages/、runai-application-packages/自动生成的 API 客户端和共享 Go 库
扩展/负载测试scale-tests/用于验证平台大规模行为的负载测试 SDK 和统一负载测试套件
文档docs/、fern/产品和开发者文档
本地环境local-dev.sh、local-dev.md一键启动的本地 Kubernetes(Kind)开发环境

有关各服务和组件的详细说明,请参阅服务参考。

使用方法

本地开发环境

local-dev.sh 脚本从源码构建 NVIDIA Run:ai 控制平面和集群服务,并将它们部署到一个自带本地镜像仓库的自包含 Kind (https://kind.sigs.k8s.io/) 集群中。

./local-dev.sh                              # 完整构建 + 集群 + 部署
./local-dev.sh --skip-build --skip-cluster  # 仅重新部署
./local-dev.sh --teardown                   # 拆除环境

请参阅本地开发指南了解前置要求(Docker/Podman、make、git、curl、python3、openssl,以及最低 CPU/内存/磁盘要求;kind、kubectl 和 helm 会自动安装)及所有可用标志。

主机上不需要安装 Go、Node 和 Java:所有构建都在容器内运行。

构建单个服务

每个服务目录都有一个 Makefile,包含标准目标(make build、make test、make lint、make validate)以及一个 README,说明如何构建、测试和使用该服务。

有关各服务和组件的详细说明,请参阅服务参考。

安装

NVIDIA Run:ai 可以部署在连接网络或气隙(air-gapped)环境中的 Kubernetes 或 OpenShift 上。

要了解完整的安装生命周期,请参阅安装与配置概览。

开始之前:

  • 支持矩阵 NVIDIA Run:ai 支持的 Kubernetes/OpenShift 版本、操作系统、GPU 和网络 Operator 以及第三方服务。
  • 系统要求 安装前需要准备的基础设施、网络和访问权限。

根据您希望的部署管理方式选择安装方法:

  • 引导式安装(推荐) 使用 runai-installer CLI 和配置 YAML 文件。安装程序会执行预检、安装所需依赖,并部署 NVIDIA Run:ai 控制平面和集群。
  • 手动安装 直接部署 NVIDIA Run:ai Helm charts。如果您通过自己的工具(如 Argo CD)管理部署,或需要对 Helm values 进行精细控制,请选择此方式。

如需在本地构建和运行 NVIDIA Run:ai 进行开发,请参阅使用方法。

分发渠道

正式发布的 NVIDIA Run:ai 容器镜像和 Helm charts 发布到 NVIDIA NGC 容器注册中心的 nvcr.io/nvidia/runai 下:这是安装程序和 Helm charts 默认拉取的注册中心。

源码发布及其说明请参见 GitHub Releases 页面;有关发布和版本管理方式,请参阅发布流程。

贡献

欢迎贡献。请阅读贡献指南了解开发工作流程、分支和 PR 策略以及 CI 要求,阅读行为准则了解社区规范。

路线图

NVIDIA Run:ai 不在本仓库中发布长期功能路线图。已规划和进行中的工作在以下公开渠道跟踪:

  • 开放 Issues 已规划的工作、已接受的功能请求和已知的不足。Issue 由维护者进行分类和标记。
  • Releases 每个版本实际发布的内容,附带从该版本分支上合并的 Pull Request 自动生成的发布说明。
  • 支持 当前支持的版本以及各版本何时进入生命周期终止阶段。

发布节奏、分支命名和发布负责人在发布流程中有详细记录。

**已知限制:**根目录 Makefile 中的目标仅为占位符;实际的构建、测试和 lint 目标位于各服务目录中(请参阅构建单个服务)。完整的 CI 检查在远程运行,并通过 Validate Successful Run 检查项在 Pull Request 上报告结果。

社区

  • GitHub Issues Bug 报告、功能请求、文档问题和使用疑问。这是项目的主要讨论论坛;请从此处开始。
  • 支持 受支持的版本以及获取帮助的渠道,包括商业支持。

安全与支持

  • **报告漏洞:**请参阅安全;安全报告请勿公开提交 Issue。
  • **受支持的版本和获取帮助:**请参阅支持。

许可证

本项目采用 Apache License 2.0 授权;详见 LICENSE。第三方声明列在 NOTICE 及各组件的 NOTICE 文件中。

**商标声明:**Apache 2.0 适用于本仓库中的软件代码。它不授予使用 NVIDIA 或 Run:ai 商标、徽标、产品名称、字体、美术作品或其他品牌资产的许可。详情请参阅商标。

嵌套和第三方许可证

部分子目录包含以各自许可证发布的第三方代码或捆绑资产。以下逐一列出其许可证及许可证文件路径:

子目录许可证许可证文件
skills/Apache-2.0 AND CC-BY-4.0skills/LICENSE
runai-cluster/cluster/goofys/Apache-2.0runai-cluster/cluster/goofys/LICENSE.md(声明见相邻的 NOTICE)
control-plane/assets-service/third_party/go_acc/Apache-2.0.../go_acc/LICENSE
control-plane/workloads-and-policies/third_party/kserve/Apache-2.0.../kserve/LICENSE
runai-application-packages/jsonutils/conjungo/MIT.../conjungo/LICENSE
runai-application-packages/jsonutils/gojsonq/MIT.../gojsonq/LICENSE.md
runai-application-packages/validation/MIT.../validation/LICENSE
runai-cluster/cluster/workload-controller/third_party/validation/MIT.../third_party/validation/LICENSE
control-plane/frontend/public/static-cli/fonts/Apache-2.0.../fonts/LICENSE.txt

以下子目录包含聚合的第三方依赖许可证报告(并非其自身代码的许可证):

子目录报告
runai-cluster/cluster/init-ca/licenses/THIRD-PARTY-LICENSES.md(由 go-licenses 生成)

相似文章