
# gpu-device-plugin
#### 插件简介
gpu-device-plugin插件是支持在容器中使用GPU显卡的设备管理插件，集群中使用GPU节点时必须安装本插件。
#### 约束与限制
- 下载的驱动必须是后缀为".run"的文件。
- 仅支持Nvidia Tesla驱动，不支持GRID驱动。
- 安装或重装插件时，需要保证驱动下载链接正确且可正常访问，插件对链接有效性不做额外校验。
- gpu-device-plugin插件仅提供驱动的下载及安装脚本执行功能，插件的状态仅代表插件本身功能正常，与驱动是否安装成功无关。
- gpu型号只支持T4、V100。
- 本地集群只支持 x86系统架构类型。
- 纳管gpu节点前，请确保节点依赖libsecurec已安装。
 
#### 前提条件
1. 在集群中纳管支持GPU虚拟化的节点，具体操作步骤请参见[纳管节点](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0202.html#ucs_01_0202__section1553119128612)。
2. 纳管成功后，给对应支持GPU虚拟化节点打上"accelerator: nvidia-{显卡型号}"标签，具体操作步骤请参见[为节点添加标签/污点](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0104.html)。
 
#### 安装插件
1. 登录[UCS控制台](https://console.huaweicloud.com/ucs/?#/aether/dashboard)，单击集群名称进入集群，在左侧导航栏中选择"插件中心"。
2. 在"可安装插件"中找到**gpu-device-plugin**，单击"安装"。
3. 在安装插件页面，填写插件配置。 
   - 插件规格：可配置"默认"或"自定义"规格，请根据实际情况选择。
   
   - 容器：选择"自定义"规格时支持设置。
   
   - Nvidia驱动：您可使用CCE提供的驱动地址或手动填写自定义Nvidia驱动的地址，集群下全部GPU节点将使用相同的驱动。 GPU虚拟化功能仅支持470.57.02、510.47.03、535.54.03、535.216.03版本的GPU驱动。
     建议您使用CCE提供的驱动地址，以满足驱动版本的要求。
     ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/notice_3.0-zh-cn.png)
     - 如果下载链接为公网地址，例如地址为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节点适配。
     
     - 更改驱动版本后，需要重启节点才能生效。
       ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/caution_3.0-zh-cn.png)
       重启节点前需要排空节点中的Pod，再进行升级重启的操作。请注意预留GPU资源以满足节点排空过程中的Pod调度需求，防止资源不足导致Pod调度失败影响业务运行。
       
     
     - 对于linux 5.x内核系统，如 或ubuntu 22.04，建议使用470及以上版本驱动。
      
     图1安装gpu-device-plugin   
     ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001883086886.png "点击放大") 
   
   - GPU虚拟化：选择开启GPU虚拟化，支持GPU单卡的算力、显存分割与隔离。 若集群中未安装volcano插件，将不支持开启GPU虚拟化，您可单击"一键安装"进行安装。如需配置volcano插件参数，请单击"自定义安装"，详情请参见[volcano](https://support.huaweicloud.com/usermanual-ucs/ucs_10_0193.html)。
     若集群中已安装volcano插件，但插件版本不支持使用GPU虚拟化，您可单击"一键升级"进行升级。如需配置volcano插件参数，请单击"自定义升级"，详情请参见[volcano](https://support.huaweicloud.com/usermanual-ucs/ucs_10_0193.html)。
     
   
   
   
   
4. 单击"安装"，安装gpu-device-plugin插件的任务即可提交成功。
 
#### 验证插件
插件安装完成后，在GPU节点及调度了GPU资源的容器中执行nvidia-smi命令，验证GPU设备及驱动的可用性。
GPU节点
```
cd /usr/local/nvidia/bin &&./nvidia-smi
```
容器
```
nvidia-smi
```
能正常返回GPU信息，说明设备可用，插件安装成功。
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001611186077.png "点击放大")
 #### 获取驱动链接-公网地址
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
2. 创建节点，在节点规格处选择要创建的GPU节点，选中后下方显示的信息中可以看到节点的GPU显卡型号。

3. 登录到[nvidia](https://www.nvidia.com/Download/Find.aspx?lang=cn)网站。
4. 如[图2]所示，在"NVIDIA驱动程序下载"框内选择对应的驱动信息。其中"操作系统"必须选**Linux 64-bit** 。
   
   图2参数选择   
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001561066150.png "点击放大")
   
   
5. 驱动信息确认完毕，单击"搜索"按钮，会跳转到驱动信息展示页面，该页面会显示驱动的版本信息如[图3]，单击"下载"到下载页面。
   
   图3驱动信息   
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001610946081.png "点击放大")
   
   
6. 获取驱动软件链接方式分两种： 
   - 方式一：如[图4]，在浏览器的链接中找到*url=/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run*的路径，补齐全路径为https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run，该方式节点需要绑定EIP 。
   
   - 方式二：如[图4]，单击"下载"按钮下载驱动，然后上传到OBS，获取软件的链接，该方式节点不需要绑定EIP。
     图4获取链接   
     ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001611026521.png "点击放大") 
   
   
   
   
 
 #### 获取驱动链接-OBS地址
1. 将驱动上传到对象存储服务OBS中，并将驱动文件设置为公共读，方法请参见[上传文件](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829661.html)。
   
   ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/note_3.0-zh-cn.png)
   节点重启时会重新下载驱动进行安装，请保证驱动的OBS桶链接长期有效。
   
   
2. 在OBS管理控制台左侧导航栏选择"对象存储"。
3. 在桶列表单击待操作的桶，进入"概览"页面。
4. 在左侧导航栏，单击"对象"。
5. 找到目标对象，单击"更多\>复制对象URL"，复制驱动链接。 
   图5获取链接   
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001929046085.png "点击放大")
   
   
 
#### 相关链接
- [GPU插件及驱动相关问题的排查思路](https://support.huaweicloud.com/cce_faq/cce_faq_00020.html)
- [工作负载异常：GPU相关](https://support.huaweicloud.com/cce_faq/cce_faq_00109.html)
- [GPU调度](https://support.huaweicloud.com/usermanual-cce/cce_10_0345.html)
 
