实现华为云cce集群双GPU版本共存

背景

在使用华为云cce集群的时候,使用gpu插件来扩展我们集群的gpu能力。
不过我们服务有更新,需要更高的gpu版本来支撑,但是老的又不能下。
所以我们采用双gpu版本共存来实现需求。

问题点

华为云目前一个集群只支持安装一个版本的gpu插件,所以我们需要知道他的gpu插件工作原理,单独实现一个。

方案

我们发现华为云的gpu插件其实是两个ds来工作的,nvidia-driver-installernvidia-gpu-device-plugin
功能简单来说就是,在node节点上下载好gpu驱动,解压到特定目录。

1
2
3
4
5
6
➜  ~ 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 <none> 467d
nvidia-gpu-device-plugin 60 60 60 9 60 <none> 467d
storage-driver 120 120 120 120 120 <none> 517d
  1. 现在我们直接复制这两个ds的yaml文件,然后修改里面的name以及标签为nvidia-driver-installer-460nvidia-gpu-device-plugin-460,你可以简单的认为做一下区分就好了。
  2. 创建两种节点池,然后分别打上标签为gpu_type=gpu-418gpu_type=gpu-460
  3. 分别修改四个ds,然后加上nodeselector,如下:
    1
    2
    nodeSelector:
    gpu_type=gpu-418 或者 gpu_type=gpu-460
  4. 最后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