技术博客

NVIDIA GPU Operator:GPU 节点运维为什么不建议只靠手工装驱动?

NVIDIA GPU Operator 能自动管理 Kubernetes GPU 节点所需的驱动、Container Toolkit、Device Plugin、DCGM 等组件。本文整理运维落地检查项。

NVIDIA GPU OperatorGPU节点KubernetesCUDA

很多团队第一次把 GPU 接入 Kubernetes,是从手工安装驱动开始的:安装 NVIDIA driver,安装 container runtime 配置,部署 device plugin,然后测试 Pod 能不能看到 GPU。小规模验证可以这样做,但节点多了之后,手工安装会变成风险源。

NVIDIA GPU Operator 的价值就是把 GPU 节点需要的一组组件自动化管理起来。官方文档说明,GPU Operator 使用 Kubernetes Operator 模式,管理 NVIDIA driver、Kubernetes device plugin、NVIDIA Container Toolkit、GPU Feature Discovery、DCGM 监控等组件。

手工装驱动的问题

手工方式常见问题包括:

AI 集群不是一台实验服务器。平台越大,越需要用声明式方式管理节点能力。

GPU Operator 管什么

典型组件包括:

运维人员要理解:Operator 不是魔法,它只是把这些组件以 Kubernetes 原生方式统一管理。出问题时仍然要知道每个组件的职责。

上线前检查清单

第一,确认节点基础信息:

lspci | grep -i nvidia
nvidia-smi
uname -r

第二,确认 Kubernetes 资源:

kubectl get pods -n gpu-operator
kubectl get nodes -L nvidia.com/gpu.product
kubectl describe node <gpu-node> | grep -A5 Allocatable

第三,运行测试 Pod:

kubectl run gpu-test --rm -it \
  --image=nvidia/cuda:12.4.1-base-ubuntu22.04 \
  --limits='nvidia.com/gpu=1' -- nvidia-smi

第四,确认监控是否进入 Prometheus。如果 DCGM Exporter 指标没有被采集,GPU 集群上线后会很难排查。

升级时关注什么

GPU Operator 升级不是只看 chart 版本,还要看:

升级建议先做一组独立 GPU 节点,打 taint,跑测试工作负载,再逐步切流。

常见问题 FAQ

GPU Operator 会自动安装驱动吗?

可以管理驱动,但具体方式取决于配置和平台。部分环境会使用宿主机预装驱动,部分环境使用 Operator 管理容器化驱动。

有了 GPU Operator 还需要懂 nvidia-smi 吗?

需要。Operator 能降低安装复杂度,但排障时仍然离不开 nvidia-smi、节点日志和 Pod 事件。

单机 GPU 服务器需要 GPU Operator 吗?

如果只是单机实验,不一定需要。如果是 Kubernetes 集群,尤其多节点生产环境,Operator 更有价值。

DCGM 是必须的吗?

强烈建议启用。没有 GPU 指标,容量规划和故障排查都会很被动。

参考资料