k8s-dra-driver-gpu的安装部署和测试
目录
概述
大模型时代,GPU 已经了各个大模型和互联网公司的重要资产,如何高效地使用 GPU 资源,最大限度地满足业务需求变成了基础架构部门的重点项目。而传统的基于 device plugin 机制调度和分配 GPU 的方法已经逐渐无法满足越来越多样化的场景和需求,比如 GPU 资源无法共享,或者是一般情况下,同一块显卡无法分配给两个 Pod 使用。尽管各个云厂商有各自 vGPU 等方案,但还是无法满足。
Kubernetes组件配置更新
由于 DRA 的功能还处于 beta 状态,所以需要通过在 kube-apiserver/kube-scheduler/kube-controller-manager/kubelet 都需要开启 feature-gates 的选项,具体如下。
|
|
GPU容器环境配置
推荐使用 gpu-operator 配置,其中包括 driver,还有 Containerd 的配置文件,gpu-operator 都可以快速配置,非常方便。
|
|
安装k8s-dra-driver-gpu
推荐使用官方仓库的 Helm Charts 来安装。
|
|
测试任务
因为笔者测试环境只有一块 T4,所以就测试一下同一块显卡,分配给两个 Pod 的方式。
总结
最近看了 Kubernetes 支持 DRA 的方式分配 GPU,同一块 GPU 可以分配给不同的 Pod,类似在线服务在潮汐的时候可以通过 vLLM 的 sleep 的功能把显存让出来,不需要删除 Pod,刷数的 Spark 或者其他类型 Pod 也分配到这个 GPU 上,这样早上还资源的时候,直接删除 Spark 和刷数的 Pod,在线服务通过 vLLM wakeup,也不用重新去 hdfs 拉模型了,启动也更快。相比传统的 device plugin,DRA plugin 可以更灵活地分配 GPU 资源。