安装节点特性发现 (NFD) 运算符#
在 2.0 版本中添加。
OpenShift 的节点特性发现 (NFD) 管理 OpenShift 容器平台中硬件特性的检测及其配置。NFD 使用节点特定的属性标记主机,因此 NFD 是 NVIDIA GPU 运算符的先决条件。作为集群管理员,您可以使用 OpenShift 容器平台 Web 控制台中的 Red Hat OperatorHub 目录安装 NFD 运算符。
使用左侧菜单栏,展开Operators(运算符)部分,然后选择 OperatorHub。
使用搜索栏搜索 Node Feature Discovery(节点特性发现)。应该返回两个结果项。选择未标记为社区运算符的运算符。这是 Red Hat 支持的版本。
单击 Install(安装)。下一个菜单允许您自定义运算符的安装方式和位置。您很少需要更改任何这些选项。选择 Install(安装)以继续使用默认设置。
等待 NFD 运算符完成安装。看到“已安装运算符,可以使用”后,单击 View Operator(查看运算符)。请注意,您现在位于 openshift-nfd 项目中,该项目是在运算符安装过程中创建的。
标题为 Provided APIs(提供的 API)的部分显示了此运算符提供的 Kubernetes 对象。NFD 运算符仅提供一个名为 NodeFeatureDiscovery 的对象。单击 Create Instance(创建实例)按钮以创建新的 NFD 对象。
下一个菜单提供了配置 NFD 运算符如何扫描集群的选项。对于 NFD 运算符,您很少需要更改任何默认设置。单击 Create(创建)以在您的集群上实例化 NFD 资源。
注意
OperatorHub 预填充的值对于 GPU 运算符有效。这将启动节点特性发现运算符,该运算符将继续标记集群中具有 GPU 的节点。
使用左侧菜单,导航到 Workloads(工作负载),然后导航到 DaemonSets。您应该看到两个 DaemonSet 是由 NFD 运算符作为您刚刚创建的 NFD 资源的一部分创建的。它们是 nfd-master 和 nfd-worker。master 的一个实例将在每个集群的控制平面节点上运行。worker 实例将在每个可用于应用程序调度的节点上运行,通常称为应用程序节点。如果控制节点也部署为工作节点,您仍然会看到两个守护程序集。
导航到 Workloads(工作负载),然后导航到 Pods。在这里,您将看到 nfd-controller 与 nfd-masters 和 nfd-workers 一起运行。worker Pod 将扫描分配给它们的节点,并检测不同的 PCI 设备和硬件功能。然后,nfd-workers 将此信息报告回 nfd-masters,而 nfd-masters 又将标签应用于节点。
导航回 Operators(运算符),然后导航到 Installed Operators(已安装的运算符)。选择 Node Feature Discovery(节点特性发现)运算符。从水平菜单栏中,选择 NodeFeatureDiscovery。您应该在此处看到一个名为 nfd-instance 的实例。等待 Status(状态)显示部署完成。
注意
Red Hat 也提供了节点特性发现运算符的文档,用于安装节点特性发现运算符。
这将启动节点特性发现运算符,该运算符将继续标记集群中具有 GPU 的节点。
或者,也可以使用 OpenShift CLI 验证节点特性发现运算符。
从 OCP Web 控制台找到您的登录信息
使用复制的登录命令登录到 OpenShift CLI
$ oc login --token=sha256~<token> --server=https://api.<OCP-URL>.com:6443
使用 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 验证节点特性发现运算符是否正常运行。
在 OpenShift 容器平台 Web 控制台中,从侧边菜单中单击 Compute(计算)> Nodes(节点)。
选择您知道包含 GPU 的工作节点。
单击 Details(详细信息)选项卡。
在 Node labels(节点标签)下,验证是否存在以下标签
feature.node.kubernetes.io/pci-10de.present=true
注意
0x10de
是分配给 NVIDIA 的 PCI 供应商 ID。或者,您可以使用 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