安装节点功能发现 (NFD) 运算符#

在 2.0 版本中添加。

OpenShift 的节点功能发现 (NFD) 管理 OpenShift 容器平台中硬件功能的检测及其配置。NFD 使用节点特定的属性标记主机,因此 NFD 是 NVIDIA GPU 运算符的先决条件。作为集群管理员,您可以使用 OpenShift 容器平台 Web 控制台中的 Red Hat OperatorHub 目录安装 NFD 运算符。

  1. 使用左侧菜单栏,展开 运算符 部分,然后选择 OperatorHub

    _images/openshift-nfd1.png
  2. 使用搜索栏搜索 Node Feature Discovery。应该返回两个结果项。选择 标记为社区运算符的运算符。这是 Red Hat 支持的版本。

    _images/openshift-nfd2.png
  3. 单击 安装 。下一个菜单允许您自定义运算符的安装方式和位置。您很少会更改这些选项中的任何一个。选择 安装 以继续使用默认设置。

  4. 等待 NFD 运算符安装完成。看到“已安装运算符 - 准备就绪”后,单击 查看运算符 。请注意,您现在位于 openshift-nfd 项目中,该项目是作为运算符安装的一部分创建的。

    _images/openshift-nfd3.png
  5. 标题为 提供的 API 的部分显示了此运算符提供的 Kubernetes 对象。NFD 运算符仅提供一个名为 NodeFeatureDiscovery 的对象。单击 创建实例 按钮以创建新的 NFD 对象。

    _images/openshift-nfd4.png
  6. 下一个菜单提供用于配置 NFD 运算符如何扫描集群的选项。对于 NFD 运算符,您很少需要更改任何默认设置。单击 创建 以在您的集群上实例化 NFD 资源。

    注意

    OperatorHub 预填充的值对于 GPU 运算符有效。这将启动节点功能发现运算符,该运算符继续标记集群中具有 GPU 的节点。

  1. 使用左侧菜单,导航到 工作负载 然后是 DaemonSets。您应该看到两个 DaemonSet 已由 NFD 运算符创建,作为您刚刚创建的 NFD 资源的一部分。它们是 nfd-masternfd-worker。master 的一个实例将在每个集群的控制平面节点上运行。worker 实例将在每个可用于应用程序调度的节点上运行,通常称为应用程序节点。

  2. 导航到 工作负载 然后是 Pod。在这里,您将看到 nfd-controller 与 nfd-masters 和 nfd-workers 一起运行。worker pod 将扫描分配给它们的节点,并检测不同的 PCI 设备和硬件功能。然后,nfd-workers 将此信息报告回 nfd-masters,而 nfd-masters 又将标签应用于节点。

  3. 导航回 运算符 然后是 已安装的运算符 。选择 Node Feature Discovery 运算符。从水平菜单栏中,选择 NodeFeatureDiscovery。您应该在此处看到一个名为 nfd-instance 的实例。等待“状态”显示部署已完成。

    _images/openshift-nfd5.png

    注意

    Red Hat 提供了 节点功能发现运算符 的文档,也用于安装节点功能发现运算符。

这将启动节点功能发现运算符,该运算符继续标记集群中具有 GPU 的节点。

或者,也可以使用 OpenShift CLI 验证节点功能发现运算符。

  1. 从 OCP Web 控制台中找到您的登录信息

    _images/openshift-nfd6.png
  2. 使用复制的登录命令登录到 OpenShift CLI

    $ oc login --token=sha256~<token> --server=https://api.<OCP-URL>.com:6443
    
  3. 使用 OpenShift CLI,键入以下命令

    1$ oc get pods -n openshift-nfd
    2
    3NAME                                      READY   STATUS    RESTARTS   AGE
    4
    5nfd-controller-manager-7f86ccfb58-nqgxm   2/2     Running   0          11m
    

验证节点功能发现运算符是否正常运行#

节点功能发现运算符使用供应商 PCI ID 来识别节点中的硬件。NVIDIA 使用 PCI ID 10de。使用 OpenShift 容器平台 Web 控制台或 CLI 验证节点功能发现运算符是否正常运行。

  1. 在 OpenShift 容器平台 Web 控制台中,从侧面菜单单击 计算 > 节点

    _images/openshift-nfd7.png
  2. 选择您知道包含 GPU 的工作节点。

    _images/openshift-nfd8.png
  3. 单击 详细信息 选项卡。

  4. 节点标签 下,验证是否存在以下标签

    feature.node.kubernetes.io/pci-10de.present=true
    
    _images/openshift-nfd9.png

    注意

    0x10de 是分配给 NVIDIA 的 PCI 供应商 ID。

  5. 或者,您可以使用 OpenShift CLI 验证 GPU 设备 (pci-10de) 是否在 GPU 节点上被发现

    1   $ oc get nodes -l feature.node.kubernetes.io/pci-10de.present
    2
    3    NAME                          STATUS ROLES   AGE  VERSION
    4
    5    nvaie-ocp-7rfr8-worker-7x5km  Ready  worker  20d  v1.22.3+e790d7f
    6
    7    nvaie-ocp-7rfr8-worker-jntsp  Ready  worker  11d  v1.22.3+e790d7f