Install Node Feature Discovery Application

Node Feature Discovery (NFD) detects hardware features available on each node in a kubernetes cluster and advertises those features using kubernetes node labels. Use the following procedure to install the NFD application.

Prerequisites

Before attempting to install the NFD application, ensure that your system meets the following requirements:

  1. Ensure that you have at least kubernetes version v1.24.4 installed. If kubernetes v1.24.4 is not installed, see Manual Kubernetes Version Upgrade for more details.

  2. If you have previously installed the NFD Helm chart, you need to uninstall it before proceeding with the new installation. To uninstall, use the following command:

    ~(keystone_admin)]$ helm uninstall node-feature-discovery -n <namespace>
    

    <namespace> is the location, where you installed the NFD Helm chart.

Procedure

Use the following steps to install the NFD application:

  1. Locate the NFD tarball in the /usr/local/share/applications/helm directory.

    For example:

    /usr/local/share/applications/helm/node-feature-discovery-<version>.tgz
    

    Replace <version> with the latest version number.

  2. Upload the application using the following command.

    ~(keystone_admin)]$ system application-upload /usr/local/share/applications/helm/node-feature-discovery-<version>.tgz
    

    Replace <version> with the latest version number.

  3. Verify that the NFD application has been uploaded successfully.

    ~(keystone_admin)]$ system application-list
    
  4. Apply the updates using the following command.

    ~(keystone_admin)]$ system application-apply node-feature-discovery
    
  5. Monitor the status of the installation using one of the following commands.

     ~(keystone_admin)]$ watch system application-list
    
    or
    
     ~(keystone_admin)]$ watch kubectl get pods -n node-feature-discovery
    

Results

  • A worker pod is created for each node in the kubernetes cluster. These worker pods gather information about node features periodically and updates the labels associated with the nodes.

  • Additionally, there is one master pod that gathers all the updated data from worker pods and reports it for efficient feature management and a garbage collection of stale node feature objects pod.

The NFD application is now installed on your system, and the hardware features available on each node in the kubernetes cluster will be detected and advertised using kubernetes node labels. To check the label for any configuration, use the following command:

~(keystone_admin)]$ kubectl label node/<node's name> --list | grep "feature.node.kubernetes.io"

Where <node’s name> is name of the node.