配置 GPU 工作程序节点

验证您的 GPU 工作程序节点是否已做好部署准备。

准备 GPU 节点

在所有 GPU 节点上完成以下步骤:

  1. 设置存储库。

    • 对于 Red Hat Enterprise Linux,请运行以下命令:

      a. 设置 RHEL 存储库。使用订阅管理器凭证进行注册。

       subscription-manager register --username <username> --password <password>
      

      b. 为 Enterprise Linux (EPEL) 存储库设置附加包。

       yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      
    • 对于 Ubuntu,缺省情况下存储库可用。

  2. 安装 NVIDIA 驱动程序。

    a. 设置 NVIDIA 驱动程序本地存储库。
    首先,从 NVIDIA 驱动程序下载在新选项卡中打开 下载正确的 GPU 驱动程序版本程序包。然后运行以下命令安装此程序包:

    • 对于 RHEL,运行以下命令:

      yum localinstall <package-name>.rpm -y
      
    • 对于 Ubuntu,请运行以下命令:

      dpkg -i <package-name>.deb
      

    b. 安装驱动程序。

    • 对于 RHEL,请运行以下命令:

      yum install nvidia-kmod nvidia-driver-NVML nvidia-persistenced -y
      
    • 对于 Ubuntu,请运行以下命令:

      apt install nvidia-driver-<version>
      
  3. 除去现有热插拔内存 udev 规则。
    从 udev 规则注释掉内存 hotadd 规则。

    # Memory hotadd request
    #SUBSYSTEM!="memory", ACTION!="add", GOTO="memory_hotplug_end"
    #PROGRAM="/bin/uname -p", RESULT=="s390*", GOTO="memory_hotplug_end"
    

    udev 规则文件可从以下位置获取:

    • 对于 RHEL,文件位置和名称为 /lib/udev/rules.d/40-redhat.rules
    • 对于 Ubuntu,文件位置和名称为 /lib/udev/rules.d/40-vm-hotadd.rules
  4. 启用 nvidia-persistenced 服务。

    systemctl enable nvidia-persistenced
    
  5. 重新启动节点。

  6. 运行以下命令验证设置:

    nvidia-smi
    

更新 GPU 驱动程序版本

可以在安装 IBM® Cloud Private 之前或之后更新 GPU 驱动程序。

要点:IBM Cloud Private 环境不使用 NVIDIA 容器运行时。不得在任何 IBM Cloud Private GPU 节点上安装 NVIDIA 容器运行时。

  1. 更新 GPU 驱动程序版本。请参阅 http://www.nvidia.com/Download/index.aspx 在新选项卡中打开

  2. 更新 GPU 驱动程序版本之后,请重新启动 Kubelet,以允许 Kubernetes 获取对 GPU 驱动程序的更改。

    systemctl restart kubelet
    

验证节点是否已做好部署准备

您必须从安装有 Nvidia GPU 驱动程序的工作程序节点执行这些验证步骤。

  1. 检查 Nvidia 是否已启动并正在运行。

    nvidia-smi
    

    输出类似于以下代码:

    Thu Nov  9 16:44:28 2017
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 375.66                 Driver Version: 375.66                    |
    |-------------------------------+----------------------+----------------------+
    | 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 K80           Off  | 0000:08:00.0     Off |                    0 |
    | N/A   47C    P8    26W / 149W |      0MiB / 11439MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla K80           Off  | 0000:09:00.0     Off |                    0 |
    | N/A   36C    P8    31W / 149W |      0MiB / 11439MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID  Type  Process name                               Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

    如果返回了错误消息,请在节点上重新安装 GPU 驱动程序。请参阅 http://www.nvidia.com/Download/index.aspx 在新选项卡中打开

  2. 确保 GPU 驱动程序文件夹可用。

    1. 检查 /var/lib/kubelet/device-plugins/nvidia-driver 文件夹是否存在。
    2. 检查在 /var/lib/kubelet/device-plugins/nvidia-driver 文件夹下是否存在至少两个文件夹。文件夹名称为 init<driver-version-number>

    如果不存在任何文件夹,请确保已正确安装 GPU 驱动程序。然后,请运行以下命令:

    1. 删除包含驱动程序文件的文件夹。

      rm -rf /var/lib/kubelet/device-plugins/nvidia-driver
      
    2. 重新启动 kubelet 服务。

      systemctl restart kubelet
      
  3. 验证 GPU 资源是否可供 Kubernetes 使用。

    kubectl describe nodes
    

    在命令输出中,含 GPU 的节点必须包含以下条目:

    Capacity:
    [snip]
    nvidia.com/gpu:     2
    [snip]
    Allocatable:
    [snip]
    nvidia.com/gpu:     2
    

    如果针对具有 NVIDIA GPU 的节点未看到 nvidia.com/gpu 条目,原因可能是由于 GPU 驱动程序未正确安装。您可能需要重新安装 GPU 驱动程序。

您现在已准备就绪,可以在工作程序节点上部署使用 GPU 资源的应用程序。请参阅创建附加有 GPU 资源的部署