安装节点特性发现 (NFD) 运算符#

在 2.0 版本中添加。

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

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

    _images/os-on-bm-nfdop1.png
  2. 使用搜索栏搜索 Node Feature Discovery(节点特性发现)。应该返回两个结果项。选择标记为社区运算符的运算符。这是 Red Hat 支持的版本。

    _images/os-on-bm-nfdop2.png
  3. 单击 Install(安装)。下一个菜单允许您自定义运算符的安装方式和位置。您很少需要更改任何这些选项。选择 Install(安装)以继续使用默认设置。

  4. 等待 NFD 运算符完成安装。看到“已安装运算符,可以使用”后,单击 View Operator(查看运算符)。请注意,您现在位于 openshift-nfd 项目中,该项目是在运算符安装过程中创建的。

    _images/os-on-bm-nfdop3.png
  5. 标题为 Provided APIs(提供的 API)的部分显示了此运算符提供的 Kubernetes 对象。NFD 运算符仅提供一个名为 NodeFeatureDiscovery 的对象。单击 Create Instance(创建实例)按钮以创建新的 NFD 对象。

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

    注意

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

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

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

  9. 导航回 Operators(运算符),然后导航到 Installed Operators(已安装的运算符)。选择 Node Feature Discovery(节点特性发现)运算符。从水平菜单栏中,选择 NodeFeatureDiscovery。您应该在此处看到一个名为 nfd-instance 的实例。等待 Status(状态)显示部署完成。

    _images/os-on-bm-nfdop5.png

    注意

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

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

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

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

    _images/os-on-bm-nfdop6.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 控制台中,从侧边菜单中单击 Compute(计算)> Nodes(节点)。

    _images/os-on-bm-nfdop7.png
  2. 选择您知道包含 GPU 的工作节点。

    _images/os-on-bm-nfdop8.png
  3. 单击 Details(详细信息)选项卡。

  4. Node labels(节点标签)下,验证是否存在以下标签

    feature.node.kubernetes.io/pci-10de.present=true
    
    _images/os-on-bm-nfdop9.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