更新时间:2025-08-19 GMT+08:00

CCE AI套件(NVIDIA GPU)

插件简介

CCE AI套件(NVIDIA GPU)插件是一款用于启用和管理GPU资源的设备管理插件,支持容器内访问GPU显卡资源,帮助用户在云原生环境中高效运行和运维基于GPU的计算密集型工作负载。通过该插件,Standard/Turbo集群可具备GPU调度、驱动自动化安装、运行时管理及性能指标监控等能力,为GPU工作负载提供完整的生命周期支持。集群中使用GPU节点时必须安装本插件。

nvidia-gpu-device-plugin工作机制

nvidia-gpu-device-plugin是CCE AI套件(NVIDIA GPU)插件的核心组件之一,作为连接容器平台与GPU硬件的桥梁,它能够将物理GPU资源抽象为容器平台可识别、可调度的资源类型,从而解决容器化环境中GPU资源的分配与使用问题。

该组件以DaemonSet方式部署在集群的每个节点上,可让节点上的GPU被kubelet发现并上报至Kubernetes。此后,用户只需在Pod spec中声明所需的GPU资源,即可调用对应节点上的GPU资源。kubelet不主动感知GPU设备,需要依赖nvidia-gpu-device-plugin注册和汇报GPU信息。这个插件运行在每个GPU节点上,并通过gRPC协议与kubelet的Device Plugin Manager进行通信,完成注册流程。其具体工作流程如下:
图1 GPU资源上报与健康
  1. 注册请求:nvidia-gpu-device-plugin以客户端的身份向kubelet发起注册请求,主要汇报以下关键信息:
    • 设备名称:即nvidia.com/gpu,用于标识插件所管理的硬件资源类型,便于kubelet识别和调度。
    • Unix Socket:用于组件与kubelet进行本地gRPC通信,确保kubelet能准确调用正确的服务。
    • API版本:标明所使用的Device Plugin API协议版本,以保证双方通信协议兼容。
  2. 启动服务:完成注册后,nvidia-gpu-device-plugin会启动一个gRPC服务器,正式对外提供服务,用于接收并响应kubelet发起的请求,包括设备列表查询、健康状态汇报、资源分配等。该gRPC服务监听的地址(Unix Socket路径)及支持的Device Plugin API版本,均在注册阶段已向kubelet上报,确保kubelet能基于注册信息正确建立连接并调用相应接口。
  3. 健康监控:当gRPC服务器启动后,kubelet会通过ListAndWatch接口与nvidia-gpu-device-plugin建立一个长连接,用于持续监听设备ID及其健康状态。一旦nvidia-gpu-device-plugin检测到某个设备出现异常,会通过该连接主动上报给kubelet。
  4. 信息上报:kubelet会将这些设备信息整合到节点的状态中,并将设备数量等资源数据上报至kube-apiserver。后续调度器(kube-scheduler/volcano)便可基于这些信息进行资源调度决策。
  5. 持久化存储:CCE会将节点上报的GPU设备信息(如数量、状态等)存储至Etcd中,实现集群级资源状态的持久化。这一过程确保了GPU资源数据在集群组件故障或重启后不丢失,同时为调度器、控制器等组件提供一致的数据源,保障资源调度与管理的可靠性。

约束与限制

  • 下载的驱动必须是后缀为“.run”的文件。
  • 仅支持Nvidia Tesla驱动,不支持GRID驱动。
  • 安装或重装插件时,需要保证驱动下载链接正确且可正常访问,插件对链接有效性不做额外校验。
  • 插件仅提供驱动的下载及安装脚本执行功能,插件的状态仅代表插件本身功能正常,与驱动是否安装成功无关。
  • 对于GPU驱动版本与您业务应用的兼容性(GPU驱动版本与CUDA库版本的兼容性),CCE不做保证,请您自行验证。
  • 对于已经安装GPU驱动的自定义操作系统镜像,CCE无法保证其提供的GPU驱动与CCE其他GPU组件兼容(例如监控组件等)。
  • 如果您使用不在GPU驱动支持列表内的GPU驱动版本,可能引发GPU驱动与操作系统版本、ECS实例类型、Container Runtime等不兼容,继而导致驱动安装失败或者CCE AI套件(NVIDIA GPU)插件异常。对于使用自定义GPU驱动的场景,请您自行验证。

安装插件

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到CCE AI套件(NVIDIA GPU)插件,单击“安装”
  3. 选择是否“启用dcgm-exporter组件进行DCGM指标观测”,开启后将在GPU节点上同时部署dcgm-exporter组件。

    插件版本为2.7.40及以上时,支持部署dcgm-exporter组件。dcgm-exporter组件保持社区能力,暂不支持共享模式和GPU虚拟化。

    启用dcgm-exporter组件后,如果需要将采集的GPU监控数据上报至AOM服务,请参见实现DCGM指标的全面监控

  4. 设置插件支持的“参数配置”

    表1 CCE AI套件(NVIDIA GPU)插件参数配置

    参数

    参数说明

    集群默认驱动

    集群下全部GPU节点将使用相同的驱动,请选择合适的GPU驱动版本,或自定义驱动链接地址,填写Nvidia驱动的下载链接。
    须知:
    • 如果下载链接为公网地址,如nvidia官网地址(https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run),各GPU节点均需要绑定EIP。获取驱动链接方法请参考公网地址
    • 若下载链接为OBS上的链接,无需绑定EIP 。获取驱动链接方法请参考OBS地址
    • 请确保Nvidia驱动版本与GPU节点适配。配套关系请参见GPU驱动支持列表
    • 更改驱动版本后,需要重启节点才能生效。
    • 对于Linux 5.x内核系统:Huawei Cloud EulerOS 2.0建议使用470及以上版本驱动;Ubuntu 22.04建议使用515及以上版本驱动。

    插件安装完成后,GPU虚拟化和节点池驱动配置请前往“配置中心 > 异构资源配置”页进行设置。

  5. 单击“安装”,安装插件的任务即可提交成功。

    卸载插件将会导致重新调度的GPU Pod无法正常运行,但已运行的GPU Pod不会受到影响。

验证插件

插件安装完成后,在GPU节点及调度了GPU资源的容器中执行nvidia-smi命令,验证GPU设备及驱动的可用性。

  • GPU节点:
    • 插件版本为2.0.0以下时,请执行以下命令:
      cd /opt/cloud/cce/nvidia/bin && ./nvidia-smi
    • 插件版本为2.0.0及以上时,请执行以下命令:
      cd /usr/local/nvidia/bin && ./nvidia-smi
  • 容器:
    • 当集群版本在1.27及以下时,请执行以下命令:
      cd /usr/local/nvidia/bin && ./nvidia-smi
    • 当集群版本在1.28及以上时,请执行以下命令:
      cd /usr/bin && ./nvidia-smi

若能正常返回GPU信息,说明设备可用,插件安装成功。

插件管理

插件安装后,支持升级和回滚操作,您可以根据需求进行选择。CCE AI套件(NVIDIA GPU)插件对版本升级或回滚时,需保证GPU节点上没有GPU虚拟化负载。如果在GPU节点存在GPU虚拟化负载时,对插件版本进行升级或回滚操作,则需要对GPU节点的进行排水,具体操作请参见CCE AI套件(NVIDIA GPU)插件版本升级或回滚后,如何对GPU节点进行排水?_云容器引擎 CCE_华为云

GPU驱动支持列表

  • 当前GPU驱动支持列表仅针对1.2.28及以上版本的CCE AI套件(NVIDIA GPU)插件。
  • 如果您需要安装最新版本的GPU驱动,请将您的CCE AI套件(NVIDIA GPU)插件升级到最新版本。
  • 对于已结束生命周期(EOL)的GPU驱动,NVIDIA官方将不再提供功能更新或安全补丁等服务,具体请参见驱动生命周期。例如,Production Branch从发布之日起提供1年的支持,LTSB(Long Term Support Branch)提供3年的长期支持

    对应该策略,对于已EOL的GPU驱动,CCE将不再不提供相应的技术支持,包含驱动的安装、更新等服务。目前,已EOL的驱动包括:510.47.03、470.141.03、470.57.02

表2 GPU驱动支持列表

GPU型号

支持集群类型

机型规格

操作系统

Huawei Cloud EulerOS 2.0(支持GPU虚拟化)

Ubuntu 22.04

CentOS Linux release 7.6

EulerOS release 2.9

EulerOS release 2.5

Ubuntu 18.04(停止维护)

EulerOS release 2.3(停止维护)

Tesla T4

CCE Standard集群

g6

pi2

535.216.03

535.54.03

510.47.03

470.57.02

535.216.03

535.161.08

535.54.03

470.141.03

535.54.03

470.141.03

535.54.03

470.141.03

535.54.03

470.141.03

470.141.03

470.141.03

Tesla V100

CCE Standard集群

p2s

p2vs

p2v

535.216.03

535.54.03

510.47.03

470.57.02

535.216.03

535.161.08

535.54.03

470.141.03

535.54.03

470.141.03

535.54.03

470.141.03

535.54.03

470.141.03

470.141.03

470.141.03

获取驱动链接

当需要使用自定义驱动链接地址安装驱动时,CCE AI套件(NVIDIA GPU)插件支持两种类型的地址,即公网地址和OBS地址。具体获取方式如下:

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 创建节点,在“节点规格”处选择要创建的GPU节点,选中后下方显示的信息中可以看到节点的GPU显卡型号。

    图4 查看显卡型号

  1. 登录到NVIDIA驱动下载页面,搜索对应的驱动信息,其中操作系统必须选Linux 64-bit

    图5 参数选择

  2. 驱动信息确认完毕,单击“Find”按钮,会跳转到驱动信息展示页面,找到需要下载的驱动,单击“view”跳转到下载页面。

    图6 驱动信息

  3. 鼠标右键单击“Download”按钮,复制下载链接。

    图7 获取链接

  1. 将驱动上传到对象存储服务OBS中,并将驱动文件设置为公共读,方法请参见上传文件

    节点重启时会重新下载驱动进行安装,请保证驱动的OBS桶链接长期有效。

  2. 在桶列表单击待操作的桶,进入“概览”页面。
  3. 在左侧导航栏,单击“对象”。
  4. 单击目标对象名称,在对象详情页复制驱动链接。

    图8 复制OBS链接

组件说明

表3 CCE AI套件(NVIDIA GPU)插件组件

容器组件

说明

资源类型

nvidia-driver-installer

为节点安装Nvidia GPU驱动的工作负载,仅在安装场景占用资源,安装完成后无资源占用。

DaemonSet

nvidia-gpu-device-plugin

为容器提供Nvidia GPU异构算力的Kubernetes设备插件。

DaemonSet

nvidia-operator

为集群提供Nvidia GPU节点管理能力。

Deployment

dcgm-exporter

启用dcgm-exporter组件进行DCGM指标观测时安装,用于采集GPU指标。

DaemonSet

相关链接

  • CCE AI套件(NVIDIA GPU)插件提供GPU监控指标,关于GPU指标详情请参见GPU监控指标说明
  • 启用dcgm-exporter组件后,如果需要将采集的GPU监控数据上报至AOM服务,请参见实现DCGM指标的全面监控
  • 如果需要进一步实现GPU虚拟化功能,请参见GPU虚拟化

版本记录

表4 CCE AI套件(NVIDIA GPU)版本记录

插件版本

支持的集群版本

更新特性

2.8.4

v1.28

v1.29

v1.30

v1.31

v1.32

修复CVE-2025-23266CVE-2025-23267漏洞

2.8.1

v1.28

v1.29

v1.30

v1.31

v1.32

修复部分问题

2.7.84

v1.28

v1.29

v1.30

v1.31

v1.32

支持CCE v1.32集群

2.7.66

v1.28

v1.29

v1.30

v1.31

修复部分问题

2.7.63

v1.28

v1.29

v1.30

v1.31

修复安全漏洞

2.7.47

v1.28

v1.29

v1.30

v1.31

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.7.42

v1.28

v1.29

v1.30

v1.31

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.7.41

v1.28

v1.29

v1.30

v1.31

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.7.40

v1.28

v1.29

v1.30

v1.31

集成DCGM-Exporter,为集群提供Nvidia GPU节点DCGM指标观测能力

2.7.19

v1.28

v1.29

v1.30

修复nvidia-container-toolkit CVE-2024-0132容器逃逸漏洞

2.7.13

v1.28

v1.29

v1.30

  • 支持节点池粒度配置XGPU
  • 支持GPU渲染场景
  • 支持v1.30集群

2.6.4

v1.28

v1.29

更新GPU卡逻辑隔离逻辑

2.6.1

v1.28

v1.29

升级GPU插件基础镜像

2.5.6

v1.28

修复安装驱动的问题

2.5.4

v1.28

支持v1.28集群

2.2.4

v1.25

v1.27

修复CVE-2025-23266CVE-2025-23267漏洞

2.2.1

v1.25

v1.27

修复部分问题

2.1.67

v1.25

v1.27

支持NVIDIA peermem模块

2.1.49

v1.25

v1.27

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.1.47

v1.25

v1.27

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.1.26

v1.21

v1.23

v1.25

v1.27

新增NVIDIA 535.216.03驱动,支持XGPU特性

2.1.14

v1.21

v1.23

v1.25

v1.27

修复nvidia-container-toolkit CVE-2024-0132容器逃逸漏洞

2.1.8

v1.21

v1.23

v1.25

v1.27

修复部分问题

2.0.69

v1.21

v1.23

v1.25

v1.27

升级GPU插件基础镜像

2.0.46

v1.21

v1.23

v1.25

v1.27

  • 支持535版本Nvidia驱动
  • 支持非root用户使用XGPU
  • 优化启动逻辑

2.0.18

v1.21

v1.23

v1.25

v1.27

支持Huawei Cloud EulerOS 2.0

1.2.28

v1.19

v1.21

v1.23

v1.25

  • 适配OS Ubuntu22.04
  • GPU驱动目录自动挂载优化

1.2.24

v1.19

v1.21

v1.23

v1.25

  • 节点池支持配置GPU驱动版本
  • 支持GPU指标采集

1.2.20

v1.19

v1.21

v1.23

v1.25

设置插件别名为gpu

1.2.17

v1.15

v1.17

v1.19

v1.21

v1.23

增加nvidia-driver-install pod limits 配置

1.2.15

v1.15

v1.17

v1.19

v1.21

v1.23

适配CCE v1.23集群

1.2.11

v1.15

v1.17

v1.19

v1.21

支持EulerOS 2.10系统

1.2.10

v1.15

v1.17

v1.19

v1.21

CentOS系统支持新版本GPU驱动

1.2.9

v1.15

v1.17

v1.19

v1.21

适配CCE v1.21集群

1.2.2

v1.15

v1.17

v1.19

适配EulerOS新内核

1.2.1

v1.15

v1.17

v1.19

  • 适配CCE v1.19集群
  • 插件增加污点容忍

1.1.13

v1.13

v1.15

v1.17

支持Centos7.6 3.10.0-1127.19.1.el7.x86_64内核系统

1.1.11

v1.15

v1.17

  • 支持用户自定义驱动地址下载驱动
  • 支持v1.15、v1.17集群