成本、计费与运维2026年10月23日Flatkey Team

构建用于 AI 训练与推理的 Kubernetes GPU 集群

一份面向 AI 训练与推理的实用 Kubernetes GPU 集群指南,涵盖 GPU 节点池、设备插件、GPU Operator、队列、存储、可观测性、安全、成本控制及供应商尽职调查。

构建用于 AI 训练与推理的 Kubernetes GPU 集群

构建 Kubernetes GPU 集群并不等同于给几个工作节点挂载 GPU。对于 AI 训练和推理,Kubernetes 必须能够安全地暴露加速器,将作业调度到正确的节点,对稀缺容量进行排队,使数据集和模型权重与计算资源保持足够接近,并告知运维人员昂贵的运行为何失败。

实用原则是:先构建能够验证工作负载的最小 Kubernetes GPU 集群,只有在调度器、驱动程序、网络、存储、可观测性和成本模型均通过验收测试后再进行扩展。一个无法解释排队时间、GPU 利用率、检查点恢复时间和故障原因的集群,尚不能算是生产基础设施。

本指南将介绍用于 AI 训练和推理的 Kubernetes GPU 集群的架构和运营模型。内容涵盖节点设计、GPU 暴露、排队、工作负载 API、可观测性、实用的 Kubernetes GPU 集群图、管理工具,以及在租用或预留容量前应向供应商提出的问题。

如果产品只需要模型输出,请先比较模型 API 或托管推理方案。如果您需要自定义权重、放置控制、私有服务、分布式训练或可重复的基准测试所有权,Kubernetes GPU 集群可以成为合适的控制平面。

Kubernetes GPU 集群快速解答

生产级 Kubernetes GPU 集群包含六个层面:

层 负责内容 投入生产前需验证的内容
GPU 节点 GPU 型号、GPU 内存、CPU/RAM、本地 NVMe、NIC、节点镜像、驱动程序、容器运行时 节点规格应匹配训练或推理工作负载,而不只是匹配宣传的 GPU SKU。
GPU 暴露 设备插件、GPU Operator、动态资源分配、MIG 或共享策略 Pod 能够以可预测的方式请求加速器,且不会意外使用错误的设备。
调度和队列 Kubernetes 调度器、Kueue、Volcano、Ray、Kubeflow、自定义 Operator 作业获得公平等待,抢占策略明确,团队能够解释排队时间。
网络和存储 节点内的 NVLink/NVSwitch、节点间的 InfiniBand/RoCE/EFA 或以太网、对象存储、共享文件系统、检查点路径 分布式作业可以扩展和恢复,且不会让 GPU 因等待数据而闲置。
可观测性 DCGM、Prometheus、日志、事件、追踪、队列指标、成本标签 运维人员可以按工作负载查看利用率、内存、功耗、故障、所有者和支出。
安全和治理 RBAC、命名空间、配额、镜像策略、密钥、网络策略、审计日志 在集群成为共享基础设施之前,多租户访问已得到控制。

关键设计问题不是“ Kubernetes 能运行 GPU 吗?”它可以,只要具备正确的设备插件和节点设置。更难的问题是:您的 AI 基础设施 Kubernetes GPU 集群能否在真实数据、真实用户、真实故障和真实预算约束下,让 GPU 持续发挥价值。

Kubernetes GPU 集群图

在选择工具之前,请将此 Kubernetes GPU 集群图作为评审模型:

                 开发人员 / CI / 笔记本 / API 流量
                                  |
                                  v
        +--------------------------------------------------+
        | Kubernetes 控制平面                              |
        | API 服务器、调度器、RBAC、准入控制、密钥          |
        +--------------------------------------------------+
                                  |
                 +----------------+----------------+
                 |                                 |
                 v                                 v
        +------------------+              +------------------+
        | 队列层           |              | 平台附加组件     |
        | Kueue / Volcano  |              | GPU Operator,    |
        | 配额、队列组、   |              | 设备插件、       |
        | 资源类型         |              | DCGM exporter    |
        +------------------+              +------------------+
                 |                                 |
                 +----------------+----------------+
                                  |
                                  v
        +--------------------------------------------------+
        | GPU 工作节点池                                   |
        | H100/H200/B200/A100/L40S 等、CPU、RAM、NVMe、    |
        | NIC、CUDA/运行时、标签、污点、拓扑               |
        +--------------------------------------------------+
                 |                 |                 |
                 v                 v                 v
        训练作业            推理服务             批处理作业
        PyTorch/JAX         vLLM/SGLang/Triton    Ray/Kubeflow
                 \                 |                 /
                  \                |                /
                   v               v               v
        +--------------------------------------------------+
        | 网络和数据路径                                   |
        | 高速网络、对象存储、共享文件系统、                |
        | 模型缓存、检查点、日志、指标、备份               |
        +--------------------------------------------------+

该图刻意保持简洁。真实的 kubernetes gpu cluster architecture 还会加入负载均衡器、私有镜像仓库、服务网格边界、IAM、制品存储、实验跟踪和计费导出。该图的作用是促成一个关键讨论:每一层由谁负责应对各类故障模式?

第 1 步:确定 Kubernetes 是否是合适的 GPU 控制平面

当您的 AI 平台需要容器原生部署、API 驱动的自动化、多租户命名空间、服务端点、策略控制,以及与现有云原生可观测性集成时,Kubernetes 非常适合。

它通常适用于:

  • 需要发布、自动扩缩容边界、路由和服务健康检查的在线推理服务。
  • 以 Jobs、Ray 工作负载或自定义 Operator 形式运行的批量推理或嵌入工作负载。
  • 团队希望使用共享基础设施而非各自独立 GPU 机器的微调和训练工作负载。
  • Notebook、训练作业、模型服务和配套服务共享同一运行模型的混合平台。
  • 已经运行 Kubernetes,并能够扩展现有身份、CI/CD、镜像仓库、日志和策略系统的团队。

当团队只需要偶尔进行研究访问、一次性的 HPC 风格批处理作业,或简单的 SSH 驱动训练时,Kubernetes 可能不是合适的首选。在这些情况下,Slurm、托管训练服务、托管 Notebook 环境或直接租用 GPU,可能更快地产出有用结果。

在构建 kubernetes gpu cluster 之前,先明确工作负载边界:

问题 重要原因
工作负载是训练、批量推理、在线推理、Notebook,还是混合型? 答案会改变调度、存储、网络和可用性要求。
作业需要完整 GPU、MIG 切片,还是分时共享访问? GPU 共享会改变隔离性、计量方式和性能可预测性。
工作负载是单节点还是多节点? 多节点训练不仅需要 GPU 可用性,还需要进行网络和放置测试。
数据集、检查点和模型权重有多大? 数据传输可能成为 GPU 成本的主要部分。
业务分母是什么? 应使用已完成的训练运行、已接受的推理输出、已生成的媒体作业或客户请求,而非仅使用原始 GPU 小时数。

对于更广泛的系统设计,请将此实施计划与您的 gpu cluster architecture 评估关联起来:计算、网络、存储和控制平面必须协同设计。

第 2 步:围绕工作负载形态设计 GPU 节点池

kubernetes gpu cluster 应具有经过审慎规划的节点池,而不是随意混合各种加速器机器。

对于每个节点池,请明确:

  • GPU 型号和显存容量。
  • 每个节点的 GPU 数量。
  • 在相关情况下,PCIe、SXM、NVLink、NVSwitch 或其他拓扑细节。
  • CPU 型号、CPU 数量、RAM 和 NUMA 布局。
  • 本地 NVMe 容量和吞吐量。
  • NIC 数量、NIC 速率和网络类型。
  • 操作系统镜像、内核、驱动程序、CUDA、容器运行时和补丁流程。
  • Kubernetes 标签、污点、容忍和拓扑标签。
  • 工作负载使用完整 GPU、MIG、时间切片还是其他共享模式。

除非有充分理由将其合并,否则应将训练和推理需求分开。训练最关注的可能是 all-reduce 性能、检查点带宽和组调度。在线推理则可能更关注冷启动时间、模型缓存局部性、尾延迟和发布安全性。

一种实用的节点池命名模式是:

gpu-pool:
  accelerator: h100-80gb
  topology: 8gpu-sxm-nvlink
  fabric: infiniband
  workload: distributed-training
  sharing: full-gpu

这些标签不仅是文档说明。它们会成为调度选择器、配额维度、成本标签和调试上下文。

第 3 步:使用正确的 Kubernetes 机制公开 GPU

Kubernetes 通过专用资源机制调度 GPU。常见的基础方案是供应商提供的 设备插件,它向 kubelet 通告 GPU 资源,以便 Pod 能将其作为扩展资源进行请求。Kubernetes 在其 GPU 调度指南中说明了请求模型和节点选择约束。NVIDIA 的 Kubernetes 设备插件是 NVIDIA GPU 的标准方案,而 NVIDIA GPU Operator 则打包了多个运维组件,包括驱动程序和运行时管理、设备插件部署、MIG 管理以及 GPU 遥测。

对于许多团队,首个生产路径是:

node image + kernel prerequisites
  -> NVIDIA driver and container runtime
  -> NVIDIA GPU Operator
  -> Kubernetes device plugin
  -> DCGM exporter metrics
  -> workload namespaces and quotas

Kubernetes 动态资源分配对于评估更丰富设备分配模型的团队也很重要。DRA 围绕资源声明和设备类进行设计;当简单的扩展资源请求无法表达足够的放置或设备特定要求时,这会很有用。应将其视为一项审慎的平台选择:驱动程序、Kubernetes 版本、工作负载 API 和可观测性方案都应一并测试。

实际决策如下:

需求 要评估的 Kubernetes 机制
基本的整卡 GPU Pod 调度 设备插件和 nvidia.com/gpu 风格的扩展资源。
NVIDIA GPU 生命周期管理 NVIDIA GPU Operator。
GPU 遥测 DCGM exporter 加 Prometheus/Grafana 或您的可观测性技术栈。
表达能力更强的设备声明 Kubernetes 动态资源分配。
GPU 分区 在支持的情况下使用 MIG,并明确其隔离性和性能方面的注意事项。
分时共享的开发访问 仅在明确隔离和配额规则后,采用时间切片或平台策略。

不要向应用团队隐藏这一层。他们需要知道 Pod 获得的是整块加速器、MIG 切片还是分时共享设备,因为性能和调试假设会随之改变。

第 4 步:在团队争抢 GPU 之前添加队列层

默认 Kubernetes 调度器本身并不是一个完整的多租户 AI 队列。AI 团队通常需要工作负载准入、公平共享、配额、抢占策略,以及了解作业为何正在等待的可见性。

当批处理和 AI/ML 排队很重要时,Kueue 是值得评估的 Kubernetes 原生项目。其核心概念包括工作负载、本地队列、集群队列、群组和资源类型。这使平台团队能够对稀缺的 GPU 池进行建模,并决定在资源可用时准入哪些作业。

Volcano 是另一种适用于 AI、大数据和 HPC 风格工作负载的 Kubernetes 批处理调度选项。其组调度器采用全有或全无的最小 Pod 条件,对于分布式作业而言值得评估;否则,这类作业会在等待对等节点时浪费已部分分配的 GPU。

对于AI 基础设施 Kubernetes GPU 集群,请以书面形式定义队列策略:

策略 需要做出的决策
准入 哪些作业可以进入队列,需要哪些元数据?
公平共享 如何在团队、项目或环境之间分配 GPU?
优先级 哪些生产推理或上线关键型训练作业可以插队?
抢占 作业能否被驱逐,以及驱逐前如何要求完成检查点保存?
资源类型 哪些 GPU 池可以互换,哪些不可以?
回填 在大型分布式任务等待期间,较小的作业能否运行?
可见性 用户无需询问平台工程师,能否看到队列位置和被拒绝的原因?

队列策略是一种成本控制机制。没有它,最强势的团队就可能消耗最昂贵的容量,而较小的作业则只能等待,或被转移到不受管理的影子基础设施中。

第 5 步:为训练和推理选择工作负载 API

当应用团队能够提交工作负载,而无需每次都手写底层 Pod 规范时,Kubernetes GPU 集群最有价值。

对于训练,请评估:

  • 适用于简单单节点运行的原生 Kubernetes Jobs。
  • 适用于跨框架分布式训练工作流的 Kubeflow Trainer。
  • 用于分布式 Python、批量推理和服务模式的 Ray 和 KubeRay。
  • 在需要组调度或队列准入时使用 Volcano 或 Kueue 集成。
  • 仅当平台拥有通用工具未覆盖的稳定内部模式时,才使用自定义 Operator。

对于推理,请评估:

  • 适用于简单服务的 Deployments 或 StatefulSets。
  • 根据模型和性能目标选择 vLLM、SGLang、Triton 或 TensorRT-LLM 服务容器。
  • 当团队需要模型生命周期抽象时,使用 KServe 或其他模型服务层。
  • 基于队列深度、延迟、GPU 内存和请求组合制定水平与垂直扩缩容规则。
  • 为对延迟敏感的生产流量和批处理工作负载设置独立的节点池。

一开始应保持工作负载 API 简单朴素。一个包含标签、资源请求、存储挂载和日志导出的清晰 Job 模板,优于一个无人能够调试的复杂平台。

第 6 步:验证网络和存储路径

能正常运行的演示与生产级Kubernetes GPU 集群 AI 基础设施之间的差异,往往会在网络和存储测试中显现。

对于分布式训练,请验证:

  • 跨节点放置。
  • 在每个目标节点之间的 NCCL all-reduce 行为。
  • 网络错误、重传、拥塞以及节点间差异。
  • 驱动程序、CUDA、NCCL 和容器镜像版本。
  • 安装生产容器镜像后的性能,而不仅仅是在干净的基准测试镜像上的性能。

对于存储,请验证:

  • 数据集暂存时间。
  • 模型权重下载和缓存预热。
  • 检查点写入频率和持续时间。
  • 节点或 Pod 故障后的恢复时间。
  • 并发作业下共享文件系统的行为。
  • 对象存储区域、出口流量和生命周期规则。

一个最小验收测试如下所示:

1. Submit a queued training job with the production container.
2. Pull the real dataset sample and base model weights.
3. Run a multi-node communication benchmark if the workload is distributed.
4. Train or fine-tune for a fixed window.
5. Write a checkpoint, delete a pod, and restore from checkpoint.
6. Export GPU, network, storage, queue, and cost labels.
7. Compare useful work against the model/API or GPU rental baseline.

应在进行长期预留或高额投入之前运行此测试。在基准测试期间发现网络互连薄弱或检查点路径缓慢,比在发布窗口期间发现这些问题成本更低。

Kubernetes GPU 集群管理工具

kubernetes gpu cluster management tools 这一短语涵盖多种不同工作。在确定工具所执行的工作之前,不要购买或安装工具。

管理需求 待评估的工具或项目 “良好”的表现
GPU 生命周期 NVIDIA GPU Operator、设备插件、节点镜像自动化 驱动程序、运行时、设备暴露和遥测在各节点之间均可重复配置。
排队 Kueue、Volcano、Ray 作业提交模式 用户可以清晰地看到已准入、等待中、运行中、失败和已完成状态。
训练工作流 Kubeflow Training Operator、Ray、原生 Jobs 分布式作业可重复执行,且无需每次都编写定制的 Pod YAML。
推理服务 vLLM、SGLang、Triton、KServe、Deployments 发布、健康检查、延迟和模型缓存行为均可见。
可观测性 DCGM exporter、Prometheus、Grafana、日志、追踪、Kubernetes 事件 GPU 指标与作业、团队、模型和成本标签关联。
策略 RBAC、ResourceQuota、LimitRange、准入控制、镜像策略、网络策略 在不妨碍正常开发的前提下约束多租户访问。
成本分摊 命名空间标签、工作负载标签、用量导出、计费仪表板 财务部门可以将支出映射到团队、环境、模型和已接受的输出。

避免采用仅报告已分配 GPU 小时数的平台。有效的管理应显示 GPU 为什么处于空闲状态、哪些失败作业消耗了容量,以及推理输出或训练里程碑是否证明了这笔支出的合理性。

CoreWeave Kubernetes GPU 集群问题

有些团队会搜索 coreweave kubernetes gpu cluster,因为他们希望以 Kubernetes 原生方式访问云端 GPU 容量,而不是使用通用虚拟机。将这个经过供应商修饰的查询视为尽职调查提示:对于 CoreWeave 或任何类似的 GPU 云服务提供商,在提交生产工作负载之前,请验证确切的 Kubernetes 访问模型、节点池控制、Operator 兼容性、配额导出和支持边界。

对任何提供商都应执行同样的尽职调查:

问题 重要原因
所请求区域实际可用的 GPU SKU 和节点规格是什么? 营销宣传的库存与可分配容量并非一回事。
预留或池内的节点是否同构? 混合节点可能破坏性能假设。
GPU 节点之间使用何种网络互连? 多节点训练依赖于放置策略和网络行为。
谁负责驱动程序、CUDA 和 Kubernetes 升级? 升级边界会影响停机时间和可复现性。
您能否运行 GPU Operator、Kueue、Volcano、Ray 或所需的 Operator? 托管 Kubernetes 仍需要平台兼容性。
配额、用量导出和标签如何公开? 财务和平台团队需要成本归因。
分布式运行失败时的支持路径是什么? 在生产环境之前,您需要日志、节点标识和升级支持渠道。
数据、模型权重和检查点的迁出路径是什么? 迁移成本应纳入架构决策。

提供商的 Kubernetes 并不会消除验收测试的必要性。它改变的是您直接运维哪些层,以及通过服务级证据验证哪些层。

安全与多租户检查清单

GPU 集群通常会很快成为共享基础设施。在第二个团队开始使用集群之前,就需要完成安全设计。

最低限度的控制措施:

  • 按团队、环境或工作负载边界划分命名空间。
  • 将 RBAC 与您的身份提供商绑定。
  • 为 GPU、CPU、内存和存储配置 ResourceQuota 和 LimitRange。
  • 针对特权 Pod、主机挂载、主机网络和设备访问制定明确策略。
  • 密钥管理与轮换。
  • 私有镜像仓库策略、签名、扫描或准入检查。
  • 针对出站流量、数据集访问和服务边界的网络策略。
  • 针对作业提交、密钥访问、镜像使用和管理操作的审计日志。
  • 针对本地 NVMe、临时卷、检查点、日志和失败作业的数据清理规则。

如果集群处理客户数据或专有模型权重,请将工作节点视为敏感基础设施。具有 GPU 访问权限的 Pod 也可能拥有高价值数据访问权限、模型工件和凭据。

可观测性与成本模型

生产环境的kubernetes gpu cluster需要同时具备三种视图:

  1. 平台视图:节点健康状况、GPU 健康状况、网络、存储、队列状态、Kubernetes 事件。
  2. 工作负载视图:作业所有者、镜像、模型、数据集、运行时、重试次数、退出原因、输出质量。
  3. 财务视图:已分配的 GPU 时间、有效 GPU 时间、空闲时间、失败作业消耗、每个被接受单位的成本。

至少跟踪:

  • GPU 利用率、GPU 内存、功耗、温度和错误事件。
  • Pod、作业、命名空间、节点池、模型和团队标签。
  • 队列等待时间和准入原因。
  • 训练吞吐量、检查点持续时间和恢复时间。
  • 推理延迟、吞吐量、批量大小、缓存命中率和错误率。
  • 存储吞吐量和对象存储传输时间。
  • 节点故障、驱逐、抢占和重试。

然后标准化成本:

effective_kubernetes_gpu_cluster_cost =
  (compute + network + storage + support + idle + failed_runs + operations)
  / accepted_workload_units

分母应与业务相匹配:已完成的训练运行、被接受的模型输出、生成媒体作业、索引批次或客户请求。如需更深入的成本框架,请使用 GPU cluster TCO 工作表,并在扩展集群前与 GPU cloud vs model API 进行比较。

实施检查清单

将此作为第一个生产环境切片的构建顺序:

阶段 交付物 通过条件
工作负载简介 一页式工作负载规格说明 团队就模型、框架、数据、规模、SLA 和成本分母达成一致。
节点池 GPU 节点规格和标签 节点规格、拓扑、驱动程序、运行时和升级策略均已记录。
GPU 暴露 已安装设备插件或 GPU Operator Pod 可以请求 GPU,且 DCGM 指标可见。
排队 Kueue、Volcano 或已记录的调度策略 用户可以提交作业并查看队列/准入状态。
存储 数据集、模型缓存、检查点和日志路径 在强制发生 Pod 或节点故障后,恢复测试通过。
网络 网络互连测试和生产流量测试 分布式基准测试或推理路径满足工作负载阈值。
安全性 RBAC、命名空间、配额、密钥、镜像策略 新团队无需 cluster-admin 访问权限即可完成接入。
可观测性 仪表板和使用情况导出 运维人员可以回答哪些人使用了哪些 GPU,以及作业为何失败。
验收 端到端工作负载运行 有效输出优于或能够证明采用模型/API 或租用基准的合理性。

在这份检查清单变得枯燥之前,不要将规模从 8 张 GPU 扩展到 80 张 GPU。枯燥才是目标:可重复的作业提交、可预测的放置、已知的故障恢复、可见的成本以及清晰的所有权。

常见错误

  • 在证明数据传输和检查点恢复能力之前就购买 GPU 容量。
  • 将设备插件当作整个平台。
  • 在没有优先级和隔离规则的情况下,在同一节点池上混合训练和生产推理。
  • 允许每个团队编写独特的 Pod 规格,而没有通用标签。
  • 只跟踪已分配的 GPU 时间,而不跟踪有效工作。
  • 直到集群已经过载才制定队列策略。
  • 假设托管 Kubernetes 就意味着托管 AI 基础设施。
  • 在干净镜像上运行基准测试,却在不同镜像上运行生产环境。
  • 忘记为数据集、权重、检查点和日志规划退出路径。

这些错误代价高昂,因为它们消耗稀缺的 GPU 时间,却无法产出被接受的工作成果。

常见问题

什么是 Kubernetes GPU 集群?

Kubernetes GPU 集群是一个 Kubernetes 集群,其具备 GPU 能力的工作节点、设备暴露、调度策略、存储、网络和可观测性均已配置,因此 Pod 和作业可以使用加速器执行训练、推理、批处理或研究工作负载。

我需要 NVIDIA GPU Operator 吗?

不一定,但许多基于 NVIDIA 的 Kubernetes GPU 平台会评估它,因为它将驱动程序、运行时、设备插件、MIG 和遥测组件打包为由 Operator 管理的工作流。一些托管服务提供商会为您处理该技术栈的部分内容,因此请在自行安装前确认责任边界。

Kubernetes GPU 集群是否需要 Kueue?

并非每个集群都需要 Kueue,但当稀缺的 GPU 容量需要在团队或批量 AI 作业之间共享时,值得对其进行评估。没有队列层时,用户往往难以了解作业为何等待,或者配额为何被拒绝。

Kubernetes 能运行多节点训练吗?

可以,但多节点训练需要的不只是 GPU 调度。您还需要考虑放置策略、高速网络验证、兼容的容器、检查点机制,以及通常需要的队列或组调度行为。在投入大量容量之前,请测试确切的节点池和生产镜像。

推理和训练应共用同一个 GPU 集群吗?

可以,但前提是具备清晰的节点池、优先级规则、配额和隔离机制。生产推理通常具有延迟和可用性要求,这些要求会与大型训练作业产生冲突。除非您能够证明共享策略在负载下可行,否则应从分离部署开始。

何时应使用模型 API 而不是 Kubernetes GPU 集群?

如果您只需要模型输出、模型组合经常变化、利用率较低,或团队尚未准备好运维 GPU 驱动程序、队列、存储、监控和事件响应,请优先使用模型 API。当控制能力、隐私、自定义权重或工作负载的经济性足以证明运维负担合理时,再构建集群。

官方参考资料

最终结论

当 Kubernetes 能够让您的 AI 基础设施在放置、可重复性、安全性、可观测性和成本方面,比临时搭建的 GPU 机器或托管 API 提供更好的控制能力时,构建 Kubernetes GPU 集群 是值得的。应从范围有限的工作负载开始,验证节点池,清晰地暴露 GPU,在资源争用开始前加入队列,并衡量有效产出而非原始 GPU 分配量。

如果集群在已接受的工作量方面无法胜过更简单的 GPU 租用方案或模型/API 路径,就不要扩展它。如果能够胜出,Kubernetes 就会成为控制平面,将稀缺的加速器转化为共享的 AI 平台。