Updated on 2024-12-18 GMT+08:00

gpu-device-plugin

Introduction

gpu-device-plugin is an add-on that supports GPUs in containers. If GPU nodes are used in the cluster, this add-on must be installed.

Constraints

  • The driver to be downloaded must be a .run file.
  • Only NVIDIA Tesla drivers are supported.
  • When installing or reinstalling the add-on, ensure that the driver download address is correct and accessible. CCE does not verify the address validity.
  • gpu-device-plugin enables you to download the driver and execute the installation script. The add-on status does not indicate whether the driver is installed successfully.
  • Only T4 and V100 GPUs are supported.
  • On-premises clusters support only Huawei Cloud EulerOS 2.0 (x86).
  • Before adding GPU nodes to your cluster, ensure that libsecurec has been installed.

Prerequisites

  1. Add GPU nodes to your cluster. For details, see Adding Nodes to On-Premises Clusters.
  2. Label the nodes with accelerator: nvidia-{GPU model}. For details, see Adding Labels/Taints to Nodes.

Installing the Add-on

  1. Log in to the CCE console and click the cluster name to access the cluster console. In the navigation pane, choose Add-ons.
  2. Locate gpu-device-plugin in Add-ons Available and click Install.
  3. In the window that slides out from the right, configure the parameters as follows:

    • Add-on Specifications: Select Default or Custom as required.
    • Containers: This parameter can be configured only when Add-on Specifications is set to Custom.
    • NVIDIA Driver: Use a driver address provided by CCE or enter the address of your custom NVIDIA driver. All GPU nodes in the cluster use the same driver.

      GPU virtualization supports only GPU drivers 470.57.02, 510.47.03, and 535.54.03.

      You are advised to use a driver address provided by CCE to match the driver version.
      • If the download link is a public network address, for example, NVIDIA official website address (https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run), associate EIPs with GPU nodes. For details about how to obtain the driver link, see Obtaining the Driver Link from Public Network.
      • If the download link is an OBS URL, there is no need to bind an EIP to each GPU node. For details about how to obtain the driver link, see Obtaining the Driver Link from OBS.
      • Ensure that the NVIDIA driver version matches the GPU node.
      • If the driver version is changed, restart the node to apply the change.

        Before restarting a node, evict all pods on that node. Make sure to reserve GPU resources to avoid pod scheduling failures during node drainage. Insufficient resources can affect services.

      • Use driver 470 or later for Huawei Cloud EulerOS 2.0 or Ubuntu 22.04 on which Linux Kernel 5.x is built.
      Figure 1 Installing gpu-device-plugin

  4. Click Install.

Verifying the Add-on

After the add-on is installed, run the nvidia-smi command on the GPU node and the container that schedules GPU resources to verify the availability of the GPU and driver.

GPU node:
cd /usr/local/nvidia/bin &&./nvidia-smi

Container:

nvidia-smi

If GPU information is returned, the GPU is available and the add-on is successfully installed.

Obtaining the Driver Link from Public Network

  1. Log in to the CCE console.
  2. Click Create Node and select the GPU node to be created in the Specifications area. The GPU card model of the node is displayed in the lower part of the page.
  1. Log in to NVIDIA.
  2. Select the driver information on the NVIDIA Driver Downloads page, as shown in Figure 2. Operating System must be Linux 64-bit.

    Figure 2 Setting parameters

  3. After confirming the driver information, click SEARCH. A page is displayed, showing the driver information, as shown in Figure 3. Click DOWNLOAD.

    Figure 3 Driver information

  4. Obtain the driver link in either of the following ways:

    • Method 1: As shown in Figure 4, find url=/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run in the browser address box. Then, supplement it to obtain the driver link (https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run). By using this method, you must associate EIPs with GPU nodes.
    • Method 2: As shown in Figure 4, click Agree & Download to download the driver. Then, upload the driver to OBS and record the OBS URL. By using this method, you do not need to associate EIPs with GPU nodes.
      Figure 4 Obtaining the link

Obtaining the Driver Link from OBS

  1. Upload the driver to OBS and set the driver file to public read. For details, see Uploading a File.

    When the node is restarted, the driver will be downloaded and installed again. Ensure that the OBS bucket link of the driver is valid.

  2. Log in to the OBS console. In the navigation pane, select Object Storage.
  3. In the bucket list, click the bucket name you want. The Overview page of the bucket is displayed.
  4. In the navigation pane, choose Objects.
  5. Locate the target object and choose More > Copy Object URL to copy the driver link.

    Figure 5 Obtaining the driver link