背景
在使用华为云cce集群的时候,使用gpu插件来扩展我们集群的gpu能力。
不过我们服务有更新,需要更高的gpu版本来支撑,但是老的又不能下。
所以我们采用双gpu版本共存来实现需求。
问题点
华为云目前一个集群只支持安装一个版本的gpu插件,所以我们需要知道他的gpu插件工作原理,单独实现一个。
方案
我们发现华为云的gpu插件其实是两个ds来工作的,nvidia-driver-installer
和nvidia-gpu-device-plugin
。
功能简单来说就是,在node节点上下载好gpu驱动,解压到特定目录。
1 | ➜ ~ k get ds -n kube-system |
- 现在我们直接复制这两个ds的yaml文件,然后修改里面的name以及标签为
nvidia-driver-installer-460
和nvidia-gpu-device-plugin-460
,你可以简单的认为做一下区分就好了。 - 创建两种节点池,然后分别打上标签为
gpu_type=gpu-418
和gpu_type=gpu-460
- 分别修改四个ds,然后加上
nodeselector
,如下:1
2nodeSelector:
gpu_type=gpu-418 或者 gpu_type=gpu-460 - 最后apply,查看效果
1
2
3
4
5
6
7
8➜ ~ k get ds -n kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
icagent 120 120 120 120 120 <none> 517d
nvidia-driver-installer 60 60 60 9 60 gpu_type=gpu-418 467d
nvidia-driver-installer-460 43 43 43 17 43 gpu_type=gpu-460 194d
nvidia-gpu-device-plugin 60 60 60 9 60 gpu_type=gpu-418 467d
nvidia-gpu-device-plugin-460 43 43 43 16 43 gpu_type=gpu-460 194d
storage-driver 120 120 120 120 120 <none> 517d