当前位置: 首页 > news >正文

《从裸机到 GPU 共享:一步一步在 Kubernetes 上部署 NVIDIA GPU Operator + KAI Scheduler》

NVIDIA GPU Operator 是 Kubernetes 生态中专为 GPU 资源而生的“自动化运维管家”
一句话:你把裸机节点加进 K8s 集群,GPU Operator 会自动发现 GPU → 装驱动 → 装插件 → 做监控 → 提供高级功能,让 Pod 可以像申请 CPU/Mem 一样简单地申请 GPU,而不用再手动折腾驱动、runtime、Device Plugin 等一堆底层组件。


1️⃣ 为什么会出现 GPU Operator?

传统做法(无 Operator):

  1. 每台 GPU 节点
    • 手工安装 nvidia-driver → 重启
    • 手工安装 nvidia-docker / containerd runtime
    • 手工部署 k8s-device-plugin DaemonSet
    • 升级驱动/插件时又得逐台维护
  2. 节点多、驱动版本多、易出错、回滚难。

GPU Operator 把这一切容器化 + 声明式,用 CRD 描述“我要一张 A100”,剩下的事情它全自动完成。


2️⃣ 核心能力清单

功能作用具体实现
自动驱动管理免人工安装/升级驱动通过 Driver DaemonSet 自动拉取并编译与内核匹配的 NVIDIA 驱动容器
Device Plugin把 GPU 注册成 nvidia.com/gpu 资源部署 device-plugin DaemonSet
Container Runtime让容器能用 GPU自动配置 nvidia-container-runtime 并注入到 containerd/docker
MIG 管理把 A100 划成最多 7 个小 GPU通过 CRD MigClusterPolicy 一键切分/合并
vGPU 支持多租户共享一块物理 GPU自动部署 vGPU Manager & License Server 配置
GPU 时间分片多个 Pod 轮流用 GPU通过 time-slicing ConfigMap 自动下发
GPUDirect RDMA / StorageGPU 直接跨节点通信 & 访问存储自动加载内核模块并配置 HugePage/环境变量
监控与告警GPU 利用率/温度/ECC自动跑 DCGM Exporter → Prometheus
故障自愈节点 GPU 掉线后自动重启组件基于 Operator 的 reconcile loop

3️⃣ 架构速览

┌------------------------------------------------------┐
│                 GPU Operator Pod                     │
│  ┌-------------┐  ┌--------------┐  ┌------------┐ │
│  │   Driver    │  │ Device Plugin│  │ MIG Manager│ │  控制循环
│  └-------------┘  └--------------┘  └------------┘ │
└--------------------┬---------------------------------┘│ 监听 CRD
┌--------------------┴---------------------------------┐
│ Kubernetes 集群                                     │
│   - DaemonSet:每个 GPU 节点跑 Driver / Plugin      │
│   - CRD:ClusterPolicy、MigClusterPolicy…            │
│   - ServiceMonitor:GPU 指标 → Prometheus            │
└------------------------------------------------------┘

4️⃣ 部署示例(一条命令)

helm repo add nvidia https://helm.ngc.nvidia.com/nvidia && helm repo update
helm install gpu-operator nvidia/gpu-operator -n gpu-operator --create-namespace

几分钟后:

kubectl get nodes -o jsonpath='{.items[*].status.allocatable.nvidia\.com/gpu}'
# 输出 1 1 2 … 表示已识别到 GPU

5️⃣ 场景举例

场景传统做法GPU Operator 做法
新节点上线ssh 装驱动、插件、重启节点打上 nvidia.com/gpu.present=true,Operator 自动拉起所有组件
升级驱动逐台 ssh,版本对齐噩梦改 Helm values 里 driver.version,滚动更新即可
A100 切 MIG手动 nvidia-smi mig …创建 CRD MigClusterPolicy,声明式切分
监控自建脚本采集DCGM Exporter 自动暴露 Prometheus 指标

6️⃣ 一句话总结

NVIDIA GPU Operator = GPU 驱动 + Device Plugin + Runtime + 高级特性 + 监控 + 故障自愈
全部打包成 Kubernetes 原生对象,让你像管理普通容器一样管理 GPU 资源

http://www.dtcms.com/a/351638.html

相关文章:

  • Python训练营打卡Day44-通道注意力(SE注意力)
  • 数字IC前端设计——前仿篇(VCS,DVE,Verdi)
  • 【Redis 进阶】-----哨兵 Sentinel(重点理解流程和原理)
  • 构建智能提示词工程师:LangGraph 的自动化提示词生成流程
  • 【远程软件VNC】经典远程软件VNC保姆级下载安装图文教程(附安装包)
  • STL——priority_queue的使用(快速入门详细)
  • 【硬件-笔试面试题-60】硬件/电子工程师,笔试面试题-60,(知识点:CAN总线通信原理)
  • 红黑树下探玄机:C++ setmultiset 的幕后之旅
  • Python在语料库建设中的应用:文本收集、数据清理与文件名管理
  • LeetCode刷题记录 | 长度最小的子数组 螺旋矩阵II
  • curl get post
  • GPMall 项目单机部署全流程GPMall:Redis、MariaDB、Kafka、Nginx 一步到位
  • Java微服务AI集成指南:LangChain4j vs SpringAI
  • 在线教育系统源码助力教培转型:知识付费平台开发的商业实践
  • Hyperledger Fabric官方中文教程-改进笔记(十七)-编写第一个链码
  • 售价2.5 万元的 Jetson Thor,能否开启人形机器人商业化新局面?
  • 利用AI进行ArcGISPro进行数据库的相关处理?
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物的影响?
  • ROS2一键安装脚本:ROS2安装教程,快速搭建开发环境
  • 请求接口302 Moved Temporarily
  • 【数据价值化】数据资产入表指南:核心准则与实操路径
  • C语音初阶————指针2
  • .NET 6.0 日志处理之Serilog 写入到sql server(一)
  • OOM问题排查思路及解决方案
  • 【Notepad++免费版下载安装教程(附安装包)2025最新整理】
  • 如何用Wireshark捕获当前房间路由器和主机的数据包
  • iOS 26 正式版即将发布,Flutter 完成全新 devicectl + lldb 的 Debug JIT 运行支持
  • 剖析graph-rag中最核心的一步:切片文本如何输入到大模型并且构建整体的关系
  • 食用油平台:油香里的生活哲学课
  • 使用 Vue 3 <script setup> 语法实现基于 token 的登录功能