通过指定版本号自定义节点GPU驱动版本

不同类型和版本的ACK集群默认为您安装不同版本的NVIDIA驱动。如果您使用的CUDA库需要匹配更高版本的NVIDIA驱动,需要自定义安装节点的NVIDIA驱动。本文介绍如何基于节点池标签自定义GPU节点的NVIDIA驱动版本。

注意事项

  • 对于GPU驱动版本与您业务应用的兼容性(GPU驱动版本与CUDA库版本的兼容性),ACK不保证两者之间兼容性,请您自行验证。

  • 对于已经安装GPU驱动、NVIDIA Container Runtime等GPU组件的自定义操作系统镜像,ACK无法保证其提供的GPU驱动与ACK其他GPU组件兼容(例如监控组件等)。

  • 通过节点池标签指定节点池中GPU节点的驱动版本时,由于安装驱动的过程是在添加节点时被触发,因此仅对新扩容或新添加的节点有效,对节点池中已经存在的节点无效。如果希望对已有节点有效,那么需要将该节点从节点池移除,再加入原节点池。具体操作,请参见移除节点添加已有节点

  • 机型ecs.gn7.xxxxx和ecs.ebmgn7.xxxx对510.xxx和515.xxx版本驱动存在兼容性问题,建议使用关闭GSP的510以下的驱动版本(例如:470.xxx.xxxx)或525.125.06及其以上的驱动版本。

  • NVIDIA各卡型(P100、T4、V100、A10等)对驱动版本的更详细的要求,请参见NVIDIA官方文档

步骤一:确定NVIDIA驱动版本

ACK支持的NVIDIA驱动版本列表选择与您业务相匹配的NVIDIA驱动版本。具体操作,请参见如何选择节点NVIDIA驱动版本

步骤二:创建节点池并指定驱动版本

本文以驱动版本418.181.07为例进行介绍。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 单击右上角的创建节点池,然后在创建节点池对话框配置相关参数。

    主要配置项说明如下。关于配置项的详细说明,请参见创建ACK托管集群

    1. 单击显示高级选项

    2. 节点标签参数栏添加标签,单击1图标,然后在文本框输入ack.aliyun.com/nvidia-driver-version,在文本框输入418.181.07

      关于容器服务提供的可用NVIDIA驱动版本,请参见ACK支持的NVIDIA驱动版本列表

      重要

      实例规格为ecs.ebmgn7或ecs.ebmgn7e的ECS,仅支持460.32.03之后的NVIDIA驱动版本。

    3. 参数配置完成后,单击确认配置

步骤三:验证节点池自定义安装NVIDIA驱动是否成功

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 在目标集群右侧的操作列,选择更多 > 通过 CloudShell 管理集群

  3. 执行以下命令,查看带有component: nvidia-device-plugin标签的Pod。

    kubectl get po -n kube-system -l component=nvidia-device-plugin -o wide

    预期输出:

    NAME                                            READY   STATUS    RESTARTS   AGE   IP              NODE                       NOMINATED NODE   READINESS GATES
    nvidia-device-plugin-cn-beijing.192.168.1.127   1/1     Running   0          6d    192.168.1.127   cn-beijing.192.168.1.127   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.1.128   1/1     Running   0          17m   192.168.1.128   cn-beijing.192.168.1.128   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.12    1/1     Running   0          9d    192.168.8.12    cn-beijing.192.168.8.12    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.13    1/1     Running   0          9d    192.168.8.13    cn-beijing.192.168.8.13    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.14    1/1     Running   0          9d    192.168.8.14    cn-beijing.192.168.8.14    <none>           <none>

    预期输出表明,NODE列集群中刚添加的节点对应的Pod名称为nvidia-device-plugin-cn-beijing.192.168.1.128。

  4. 执行以下命令查看节点的驱动版本是否符合预期。

    kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smi

    预期输出:

    Sun Feb  7 04:09:01 2021       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 418.181.07   Driver Version: 418.181.07   CUDA Version: N/A      |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM2...  On   | 00000000:00:07.0 Off |                    0 |
    | N/A   27C    P0    40W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla V100-SXM2...  On   | 00000000:00:08.0 Off |                    0 |
    | N/A   27C    P0    40W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   2  Tesla V100-SXM2...  On   | 00000000:00:09.0 Off |                    0 |
    | N/A   31C    P0    39W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   3  Tesla V100-SXM2...  On   | 00000000:00:0A.0 Off |                    0 |
    | N/A   27C    P0    41W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

    预期输出表明,驱动版本为418.181.07,即通过节点池自定义安装NVIDIA驱动成功。

其他方式

使用OpenAPI方式创建或者扩容集群时,可在目标节点池的配置中设置自定义驱动的标签。示例代码如下:

{
  // 其他部分省略
  ......
    "tags": [
        {
            "key": "ack.aliyun.com/nvidia-driver-version",
            "value": "418.181.07"
        }
    ],
  // 其他部分省略
  ......
}