作用
如果想要在Kubernetes中发现GPU,需要安装驱动、部署device plugin等一系列操作,使用GPU Operator可以大大简化nvidia gpu服务器的纳管难度,Operator集成了驱动、device plugin、cuda、监控的一整套功能,用户无需手动进行逐步安装,甚至连驱动都不需要提前安装。
安装前提条件
1、kubernetes已经部署完成,并有helm;
2、所有服务器的操作系统型号相同,如果型号不同,需要在节点上提前手动安装好驱动,或者采用Driver CRD的方式对节点单独设置驱动型号,驱动版本推荐见GPU Operator Component Matrix;
3、所有节点的容器运行时采用CRI-O或者containerd(在kubernetes 1.21.3测试docker运行时也可以);
4、如果kubernetes开启了Pod Security Admission (PSA),需要给Operator放开权限;
5、个人经验是推荐使用较高版本的操作系统,比如Ubuntu 20.04,部署过程比Ubuntu18.04更加快捷,应该使用22.04会更好。
安装完成后的检查
查看gpu-operator命名空间下的所有pod,里面包含了驱动、device plugin等,如果有pod没启动成功,请查看event,一般情况下是因为镜像拉取失败导致的,可以手动更改镜像地址。
GPU共享
目前支持Time Slicing和MIG方案,MPS方案目前可以单独试用部署,相信很快会集成到Operator中。
下图是Time Slicing配置前后节点信息的变化,配置4倍时间分片后,节点显示有8个可用GPU。
配置前 | 配置后 |
如果大家关注MLOps相关的技术,欢迎大家点赞收藏关注👏👏👏