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

不同类型和版本的ACK集群默认安装不同版本的NVIDIA驱动。如果您的CUDA库需要与更高版本的NVIDIA驱动兼容,您可以自定义安装GPU节点的NVIDIA驱动。本文将介绍如何基于节点池标签定制GPU节点的NVIDIA驱动版本。

注意事项

  • ACK不保证GPU驱动版本与CUDA库版本的兼容性,您需要自行验证二者之间的适配性。

  • NVIDIA各卡型对驱动版本的更详细的要求,请参见NVIDIA官方文档

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

  • 通过节点池标签指定GPU节点的驱动版本时,驱动安装过程在添加节点时触发,因此仅适用于新扩容或新添加的节点,现有节点将不受影响。如需对已有节点应用新驱动,请移除节点并重新添加已有节点

  • 实例规格为gn7ebmgn7510.xxx515.xxx版本驱动存在兼容性问题,建议使用关闭GSP510以下的驱动版本(例如:470.xxx.xxxx)或525.125.06及其以上的驱动版本。

  • 实例规格为ebmgn7ebmgn7eECS,仅支持460.32.03之后的NVIDIA驱动版本。

  • 新建节点池过程中,如果您指定的驱动版本不存在于ACK支持的NVIDIA驱动版本列表,ACK将自动安装默认驱动版本。若您指定了与最新操作系统不兼容驱动版本,可能存在节点添加失败的情况,需选择目前支持的最新驱动版本。

步骤一:确定NVIDIA驱动版本

中选择与您业务相匹配的NVIDIA驱动版本。本文以驱动版本550.144.03为例进行介绍。

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

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

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

  3. 单击左上角的创建节点池,关于配置项的详细说明,请参见创建和管理节点池。主要配置如下。

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

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

  1. 执行以下命令,查看带有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
    ack-nvidia-device-plugin-fnctc   1/1     Running   0          2m33s   10.117.227.43   cn-qingdao.10.117.XXX.XX   <none>           <none>

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

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

    kubectl exec -ti ack-nvidia-device-plugin-fnctc -n kube-system -- nvidia-smi

    预期输出:

    Mon Mar 24 08:51:55 2025       
    +-----------------------------------------------------------------------------------------+
    | NVIDIA-SMI 550.144.03             Driver Version: 550.144.03     CUDA Version: 12.6     |
    |-----------------------------------------+------------------------+----------------------+
    | GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
    |                                         |                        |               MIG M. |
    |=========================================+========================+======================|
    |   0  Tesla P4                       On  |   00000000:00:07.0 Off |                    0 |
    | N/A   33C    P8              7W /   75W |       0MiB /   7680MiB |      0%      Default |
    |                                         |                        |                  N/A |
    +-----------------------------------------+------------------------+----------------------+
                                                                                             
    +-----------------------------------------------------------------------------------------+
    | Processes:                                                                              |
    |  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
    |        ID   ID                                                               Usage      |
    |=========================================================================================|
    |  No running processes found                                                             |
    +-----------------------------------------------------------------------------------------+

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

其他方式

使用CreateClusterNodePool 创建节点池时,可在目标节点池的配置中设置自定义驱动的标签。示例代码如下:

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