服务器K8s集群GPU算力SRE:从设备插件到监控告警落地

搜索意图判断

搜“服务器K8s集群GPU算力SRE”的人,通常不是想了解概念,而是已经有一台或多台带 GPU 的服务器,准备在 Kubernetes 里把 GPU 用起来,或者已经在用但遇到了调度、监控、稳定性问题。
所以这篇文章按“装得上、跑得对、看得住、查得到”的顺序展开。

适用前提:服务器已装好 Kubernetes 集群(kubeadm 或托管集群均可),节点上有 NVIDIA GPU,操作系统为常见 Linux 发行版。
下面命令默认在 root 或有 sudo 权限的用户下执行。

先确认节点上的 GPU 能不能被系统识别

Kubernetes 自己不认 GPU,它依赖节点上的驱动和容器运行时把 GPU 暴露出来。
第一步不是改 K8s,而是回到宿主机确认驱动正常。

在每台 GPU 节点上执行:

nvidia-smi

预期结果:输出 GPU 型号、驱动版本、显存占用和当前进程列表。
如果提示 command not found,说明 NVIDIA 驱动没装,需要先安装对应驱动,不要急着往下走。

确认驱动后,再看容器运行时是否已配置为 NVIDIA 运行时。
以 containerd 为例,检查配置文件:

cat /etc/containerd/config.toml | grep -A5 nvidia

如果没有任何 nvidia 相关配置,说明 containerd 还没启用 NVIDIA runtime,设备插件即使装了也无法正常分配 GPU。

部署 NVIDIA 设备插件

K8s 官方推荐用 NVIDIA k8s-device-plugin 把 GPU 注册成可调度资源。
最直接的方式是用 DaemonSet 部署,它会自动在每个 GPU 节点上运行。

添加 Helm 仓库并安装:

helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
helm repo update
helm install nvdp nvdp/nvidia-device-plugin \
  --namespace kube-system \
  --set tolerations[0].key=CriticalAddonsOnly \
  --set tolerations[0].operator=Exists

如果不用 Helm,也可以直接 apply 官方 DaemonSet YAML。
安装完成后检查 Pod 状态:

kubectl get pods -n kube-system | grep nvidia
kubectl logs -n kube-system 

预期结果:DaemonSet 的 Pod 在每台 GPU 节点上 Running,日志里能看到注册 GPU 数量的信息。

验证 GPU 是否真的可被调度

插件跑起来不等于能用。
要确认节点上报了 nvidia.com/gpu 资源:

kubectl describe node  | grep -A5 Capacity

预期结果:Capacity 和 Allocatable 里出现 nvidia.com/gpu: 1(数量按实际卡数)。
如果这块为空,说明设备插件没注册成功,优先回看上一节的日志。

用一个测试 Pod 验证调度:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  containers:
  - name: cuda
    image: nvidia/cuda:12.2.0-base-ubuntu22.04
    command: ["nvidia-smi"]
    resources:
      limits:
        nvidia.com/gpu: 1
  restartPolicy: Never
kubectl apply -f gpu-test.yaml
kubectl logs gpu-test

预期结果:Pod 调度到 GPU 节点并成功输出 nvidia-smi 内容。
如果 Pod 一直 Pending,用 kubectl describe pod gpu-test 看 Events,常见原因是资源不足或节点未打标签。

把 GPU 算力纳入监控和告警

SRE 的核心不是装完就结束,而是知道 GPU 什么时候出问题。
推荐用 NVIDIA DCGM Exporter 采集指标,再用 Prometheus 抓取、Grafana 展示。

部署 DCGM Exporter(同样以 Helm 为例):

helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts
helm repo update
helm install dcgm-exporter gpu-helm-charts/dcgm-exporter -n monitoring

部署后在 Prometheus 的 targets 页面确认 dcgm-exporter 端点状态为 UP。
常用告警指标:

  • DCGM_FI_DEV_GPU_UTIL:GPU 利用率,持续高于 95% 可能意味着算力瓶颈。
  • DCGM_FI_DEV_MEM_COPY_UTIL:显存带宽利用率。
  • DCGM_FI_DEV_GPU_TEMP:GPU 温度,超过 85°C 需要关注散热。
  • DCGM_FI_DEV_XID_ERRORS:XID 错误,出现即代表 GPU 层面异常。

一个简单的告警规则示例:

- alert: GPUHighTemperature
  expr: DCGM_FI_DEV_GPU_TEMP > 85
  for: 5m
  labels:
    severity: warning
  annotations:
    summary: "GPU温度过高 {{ $labels.gpu }}"

容易踩的坑

驱动版本和 CUDA 镜像不匹配:业务镜像里的 CUDA 版本不能高于宿主机驱动支持的最高版本,否则容器启动就报错。
选镜像前先看 nvidia-smi 右上角的 CUDA Version。

设备插件装了但节点没资源:先确认 containerd 或 docker 已配置 NVIDIA runtime,再确认插件 Pod 日志无报错。
两个条件缺一不可。

GPU 被多个 Pod 争抢:默认情况下一块 GPU 只能分配给一个 Pod。
如果你需要共享,要额外部署 MIG 或时间片方案,不要直接改 limits 数值,K8s 不会按小数分配 GPU。

重启节点后 GPU 丢失:检查驱动是否开机自启、设备插件 DaemonSet 是否正常拉起。
建议在节点初始化脚本里固化驱动安装和运行时配置,避免手动补。

验证整套流程是否闭环

按下面清单逐项确认,全部通过才算基础 GPU 算力 SRE 落地:

  1. 每台 GPU 节点 nvidia-smi 正常输出。
  2. kubectl describe node 能看到 nvidia.com/gpu 资源。
  3. 测试 Pod 能调度并输出 GPU 信息。
  4. Prometheus 能抓到 DCGM 指标。
  5. Grafana 面板能看到利用率和温度曲线。
  6. 告警规则能在测试环境触发一次。

常见疑问

GPU 节点要不要打污点?
如果集群里既有 CPU 节点又有 GPU 节点,建议给 GPU 节点打 taint,只让明确申请 GPU 的 Pod 调度上去,避免普通业务占满 GPU 节点资源。

一块卡能不能给多个 Pod 用?
原生 K8s 不支持。需要共享时考虑 NVIDIA MIG(把一块卡切成多个实例)或时间片调度方案,配置复杂度会明显上升,建议先评估业务是否真的需要。

监控指标太多,先看哪几个?
优先盯利用率、显存占用、温度和 XID 错误这四项。前三个反映健康度,XID 错误直接对应硬件或驱动异常,出现就要查。

整套流程走完后,你的 K8s 集群就具备了基本的 GPU 算力调度和可观测能力。
后续再根据业务需求补充多卡调度、MIG 切分或成本分摊统计,不要一上来就堆复杂方案。

分享到:
上一篇
服务器K8s集群GPU算力Serverless入门:从准备到验证
下一篇
服务器K8s集群GPU算力接入GitOps:从设备插件到自动同步
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意