服务器K8s集群GPU算力Serverless入门:从准备到验证

把GPU算力接入K8s集群并做成Serverless调度,核心是三件事:让节点能识别GPU、让K8s能调度GPU、让任务按需拉起和释放。
下面按零基础可执行的顺序讲清楚。

环境准备与前置检查

开始前确认三件事:集群版本、节点驱动状态、容器运行时类型。
以下命令在任意能执行kubectl的机器上运行即可。

kubectl get nodes -o wide
kubectl version --short

登录GPU节点检查驱动和nvidia-smi是否可用:

nvidia-smi
nvidia-container-cli --version

如果nvidia-smi报command not found,说明驱动未装或未加入PATH,先装驱动再继续。
容器运行时如果是containerd,需确认已配置NVIDIA runtime,否则Pod内看不到GPU。

避坑: 不要在未确认驱动版本的情况下直接装设备插件,插件与驱动版本不匹配是最常见的失败原因。

部署NVIDIA设备插件与GPU节点标记

K8s本身不认识GPU,需要设备插件把节点GPU资源上报给kubelet。
推荐用官方Helm方式安装:

helm repo add nvidia https://nvidia.github.io/k8s-device-plugin
helm repo update
helm install nvidia-device-plugin nvidia/nvidia-device-plugin \
  --namespace kube-system \
  --set failOnInitError=false

安装完成后给GPU节点打标签,方便后续调度:

kubectl label nodes  accelerator=nvidia-gpu

验证资源是否上报成功:

kubectl describe node  | grep -A5 Capacity

看到nvidia.com/gpu: 1(或对应卡数)即表示节点已就绪。

配置Serverless式按需调度

Serverless在这里指不长期占用GPU,任务来了才申请、跑完就释放。
关键在Pod的资源声明和调度约束。

一个最小GPU任务示例:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  restartPolicy: Never
  nodeSelector:
    accelerator: nvidia-gpu
  containers:
  - name: cuda
    image: nvidia/cuda:12.0-base
    command: ["nvidia-smi"]
    resources:
      limits:
        nvidia.com/gpu: 1

应用后查看结果:

kubectl apply -f gpu-test.yaml
kubectl logs gpu-test

日志中输出GPU型号和显存信息,说明调度和容器内GPU访问都正常。
跑完删除Pod即释放算力:

kubectl delete pod gpu-test

如果需要更接近Serverless的弹性体验,可结合KEDA或集群自动扩缩容,根据队列长度动态增减GPU节点。

常见报错与排查思路

Pod一直Pending: 先看事件kubectl describe pod ,常见原因是节点没有可用GPU或nodeSelector标签写错。

Pod内nvidia-smi找不到设备: 检查容器运行时是否配置了NVIDIA runtime,
containerd需在/etc/containerd/config.toml中设置default_runtime_name = "nvidia",
改完重启containerd。

设备插件Pod反复重启: 查看kubectl logs -n kube-system ,多为驱动版本与插件不兼容,按官方兼容矩阵调整版本。

避坑要点: 修改containerd配置或重启运行时会影响该节点上所有容器,建议在业务低峰操作并提前备份配置文件。

验证与收尾

完整验证分三步:节点资源上报正确、Pod能调度到GPU节点、容器内能实际调用GPU。
三步都通过后,再接入你的训练或推理任务镜像即可。

如果任务量大,建议给GPU节点单独打污点,只允许声明了GPU资源的Pod调度上去,避免普通业务抢占。

常见疑问

没有GPU节点能用Serverless算力吗? 可以借助云厂商的GPU Serverless服务,但本地K8s集群必须至少有一个真实GPU节点才能做设备上报。

一块GPU能同时跑多个Pod吗? 默认不行,K8s把GPU当整数资源。
需要共享要用MIG或时间片方案,配置更复杂,建议先跑通独占模式。

设备插件装完要重启kubelet吗? 通常不需要,插件以DaemonSet运行,装完自动生效;
若资源未上报,可先检查插件Pod日志再考虑重启kubelet。

整体思路就是:驱动通了、插件上报了、资源声明对了、验证过了,GPU算力就能在K8s里按需调度。

分享到:
上一篇
K8s集群接入边缘GPU算力:从节点准备到任务验证
下一篇
服务器K8s集群GPU算力SRE:从设备插件到监控告警落地
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意