diff --git a/v0.11/404.html b/v0.11/404.html index 25cd89d77..7c74c19aa 100644 --- a/v0.11/404.html +++ b/v0.11/404.html @@ -1 +1 @@ - 404 · Node Feature Discovery

404

Not Found


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file + 404 · Node Feature Discovery
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

404

Not Found


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/customization-guide.html b/v0.11/advanced/customization-guide.html index e792f26cd..b3a8d6f44 100644 --- a/v0.11/advanced/customization-guide.html +++ b/v0.11/advanced/customization-guide.html @@ -1,4 +1,4 @@ - Customization guide · Node Feature Discovery

Customization guide

Table of contents

  1. Overview
  2. NodeFeatureRule custom resource
    1. A NodeFeatureRule example
    2. NodeFeatureRule controller
  3. Local feature source
    1. A hook example
    2. Hooks
    3. Feature files
    4. Input format
    5. Mounts
  4. Custom feature source
    1. An example custom feature source configuration
    2. Additional configuration directory
  5. Node labels
  6. Label rule format
    1. Fields
    2. Available features
    3. Templating
    4. Backreferences
    5. Examples
  7. Legacy custom rule syntax
    1. General nomenclature and definitions
    2. Custom features format (using the nomenclature defined above)
    3. Matching process
    4. Rules
    5. Legacy custom rule example

Overview

NFD provides multiple extension points for vendor and application specific labeling:

  • NodeFeatureRule objects provide a way to deploy custom labeling rules via the Kubernetes API
  • local feature source of nfd-worker creates labels by executing hooks and reading files
  • custom feature source of nfd-worker creates labels based on user-specified rules

NodeFeatureRule custom resource

NodeFeatureRule objects provide an easy way to create vendor or application specific labels. It uses a flexible rule-based mechanism for creating labels based on node feature.

A NodeFeatureRule example

Consider the following referential example:

apiVersion: nfd.k8s-sigs.io/v1alpha1
+        Customization guide · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Customization guide

Table of contents

  1. Overview
  2. NodeFeatureRule custom resource
    1. A NodeFeatureRule example
    2. NodeFeatureRule controller
  3. Local feature source
    1. A hook example
    2. Hooks
    3. Feature files
    4. Input format
    5. Mounts
  4. Custom feature source
    1. An example custom feature source configuration
    2. Additional configuration directory
  5. Node labels
  6. Label rule format
    1. Fields
    2. Available features
    3. Templating
    4. Backreferences
    5. Examples
  7. Legacy custom rule syntax
    1. General nomenclature and definitions
    2. Custom features format (using the nomenclature defined above)
    3. Matching process
    4. Rules
    5. Legacy custom rule example

Overview

NFD provides multiple extension points for vendor and application specific labeling:

  • NodeFeatureRule objects provide a way to deploy custom labeling rules via the Kubernetes API
  • local feature source of nfd-worker creates labels by executing hooks and reading files
  • custom feature source of nfd-worker creates labels based on user-specified rules

NodeFeatureRule custom resource

NodeFeatureRule objects provide an easy way to create vendor or application specific labels. It uses a flexible rule-based mechanism for creating labels based on node feature.

A NodeFeatureRule example

Consider the following referential example:

apiVersion: nfd.k8s-sigs.io/v1alpha1
 kind: NodeFeatureRule
 metadata:
   name: my-sample-rule-object
@@ -268,4 +268,4 @@ Element     :An identifier of the USB attribute.
     value: "datacenter-1"
     matchOn:
       - nodename: [ "node-datacenter1-rack.*-server.*" ]
-

In the example above:

  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.feature=true if the node has kmod1 AND kmod2 kernel modules loaded.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.pci.feature=true if the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 OR 1017.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.usb.feature=true if the node contains a USB device with a USB vendor ID of 1d6b AND USB device ID of 0003.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.combined.feature=true if vendor_kmod1 AND vendor_kmod2 kernel modules are loaded AND the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 or 1017.
  • A node would contain the label: vendor.feature.node.kubernetes.io/accumulated.feature=true if some_kmod1 AND some_kmod2 kernel modules are loaded OR the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 OR 1017.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.featureneedscpu=true if KVM_INTEL kernel config is enabled AND the node CPU supports VMX virtual machine extensions
  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.modulecompiler=true if the in-tree kmod1 kernel module is loaded AND it's built with GCC_VERSION=100101.
  • A node would contain the label: profile.node.kubernetes.io/my-datacenter=datacenter-1 if the node's name matches the node-datacenter1-rack.*-server.* pattern, e.g. node-datacenter1-rack2-server42

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

In the example above:

  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.feature=true if the node has kmod1 AND kmod2 kernel modules loaded.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.pci.feature=true if the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 OR 1017.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.usb.feature=true if the node contains a USB device with a USB vendor ID of 1d6b AND USB device ID of 0003.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.combined.feature=true if vendor_kmod1 AND vendor_kmod2 kernel modules are loaded AND the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 or 1017.
  • A node would contain the label: vendor.feature.node.kubernetes.io/accumulated.feature=true if some_kmod1 AND some_kmod2 kernel modules are loaded OR the node contains a PCI device with a PCI vendor ID of 15b3 AND PCI device ID of 1014 OR 1017.
  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.featureneedscpu=true if KVM_INTEL kernel config is enabled AND the node CPU supports VMX virtual machine extensions
  • A node would contain the label: feature.node.kubernetes.io/custom-my.kernel.modulecompiler=true if the in-tree kmod1 kernel module is loaded AND it's built with GCC_VERSION=100101.
  • A node would contain the label: profile.node.kubernetes.io/my-datacenter=datacenter-1 if the node's name matches the node-datacenter1-rack.*-server.* pattern, e.g. node-datacenter1-rack2-server42

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/developer-guide.html b/v0.11/advanced/developer-guide.html index 620ef6d4f..482c7c568 100644 --- a/v0.11/advanced/developer-guide.html +++ b/v0.11/advanced/developer-guide.html @@ -1,4 +1,4 @@ - Developer guide · Node Feature Discovery

Developer guide

Table of contents

  1. Building from source
    1. Download the source code
    2. Docker build
    3. Docker multi-arch builds with buildx
    4. Deployment
    5. Building locally
    6. Customizing the build
    7. Testing
  2. Running locally
    1. NFD-Master
    2. NFD-Worker
    3. NFD-Topology-Updater
  3. Documentation

Building from source

Download the source code

git clone https://github.com/kubernetes-sigs/node-feature-discovery
+        Developer guide · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Developer guide

Table of contents

  1. Building from source
    1. Download the source code
    2. Docker build
    3. Docker multi-arch builds with buildx
    4. Deployment
    5. Building locally
    6. Customizing the build
    7. Testing
  2. Running locally
    1. NFD-Master
    2. NFD-Worker
    3. NFD-Topology-Updater
  3. Documentation

Building from source

Download the source code

git clone https://github.com/kubernetes-sigs/node-feature-discovery
 cd node-feature-discovery
 

Docker build

Build the container image

See customizing the build below for altering the container image registry, for example.

make
 

Push the container image

Optional, this example with Docker.

docker push <IMAGE_TAG>
@@ -24,4 +24,4 @@ kubectl apply -k .
 ...
 

If you just want to try out feature discovery without connecting to nfd-master, pass the -no-publish flag to nfd-topology-updater.

NOTE:

NFD topology updater needs certain directories and/or files from the host mounted inside the NFD container. Thus, you need to provide Docker with the correct --volume options in order for them to work correctly when run stand-alone directly with docker run. See the template spec for up-to-date information about the required volume mounts.

PodResource API is a prerequisite for nfd-topology-updater. Preceding Kubernetes v1.23, the kubelet must be started with the following flag: --feature-gates=KubeletPodResourcesGetAllocatable=true. Starting Kubernetes v1.23, the GetAllocatableResources is enabled by default through KubeletPodResourcesGetAllocatable feature gate.

Documentation

All documentation resides under the docs directory in the source tree. It is designed to be served as a html site by GitHub Pages.

Building the documentation is containerized in order to fix the build environment. The recommended way for developing documentation is to run:

make site-serve
 

This will build the documentation in a container and serve it under localhost:4000/ making it easy to verify the results. Any changes made to the docs/ will automatically re-trigger a rebuild and are reflected in the served content and can be inspected with a simple browser refresh.

In order to just build the html documentation run:

make site-build
-

This will generate html documentation under docs/_site/.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

This will generate html documentation under docs/_site/.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/index.html b/v0.11/advanced/index.html index 0535f1ad9..c835c7e7d 100644 --- a/v0.11/advanced/index.html +++ b/v0.11/advanced/index.html @@ -1 +1 @@ - Advanced · Node Feature Discovery

Advanced

Advanced topics and reference.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file + Advanced · Node Feature Discovery
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Advanced

Advanced topics and reference.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/master-commandline-reference.html b/v0.11/advanced/master-commandline-reference.html index e61b8c8c6..c6aa63660 100644 --- a/v0.11/advanced/master-commandline-reference.html +++ b/v0.11/advanced/master-commandline-reference.html @@ -1,4 +1,4 @@ - Master cmdline reference · Node Feature Discovery

Commandline flags of nfd-master

Table of contents

  1. -h, -help
  2. -version
  3. -prune
  4. -port
  5. -instance
  6. -ca-file
  7. -cert-file
  8. -key-file
  9. -verify-node-name
  10. -no-publish
  11. -featurerules-controller
  12. -label-whitelist
  13. -extra-label-ns
  14. -resource-labels
  15. Logging

To quickly view available command line flags execute nfd-master -help. In a docker container:

docker run k8s.gcr.io/nfd/node-feature-discovery:v0.11.3 nfd-master -help
+        Master cmdline reference · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Commandline flags of nfd-master

Table of contents

  1. -h, -help
  2. -version
  3. -prune
  4. -port
  5. -instance
  6. -ca-file
  7. -cert-file
  8. -key-file
  9. -verify-node-name
  10. -no-publish
  11. -featurerules-controller
  12. -label-whitelist
  13. -extra-label-ns
  14. -resource-labels
  15. Logging

To quickly view available command line flags execute nfd-master -help. In a docker container:

docker run k8s.gcr.io/nfd/node-feature-discovery:v0.11.3 nfd-master -help
 

-h, -help

Print usage and exit.

-version

Print version and exit.

-prune

The -prune flag is a sub-command like option for cleaning up the cluster. It causes nfd-master to remove all NFD related labels, annotations and extended resources from all Node objects of the cluster and exit.

-port

The -port flag specifies the TCP port that nfd-master listens for incoming requests.

Default: 8080

Example:

nfd-master -port=443
 

-instance

The -instance flag makes it possible to run multiple NFD deployments in parallel. In practice, it separates the node annotations between deployments so that each of them can store metadata independently. The instance name must start and end with an alphanumeric character and may only contain alphanumeric characters, -, _ or ..

Default: empty

Example:

nfd-master -instance=network
 

-ca-file

The -ca-file is one of the three flags (together with -cert-file and -key-file) controlling master-worker mutual TLS authentication on the nfd-master side. This flag specifies the TLS root certificate that is used for authenticating incoming connections. NFD-Worker side needs to have matching key and cert files configured in order for the incoming requests to be accepted.

Default: empty

Note: Must be specified together with -cert-file and -key-file

Example:

nfd-master -ca-file=/opt/nfd/ca.crt -cert-file=/opt/nfd/master.crt -key-file=/opt/nfd/master.key
@@ -11,4 +11,4 @@
 

-label-whitelist

The -label-whitelist specifies a regular expression for filtering feature labels based on their name. Each label must match against the given reqular expression in order to be published.

Note: The regular expression is only matches against the "basename" part of the label, i.e. to the part of the name after ‘/'. The label namespace is omitted.

Default: empty

Example:

nfd-master -label-whitelist='.*cpuid\.'
 

-extra-label-ns

The -extra-label-ns flag specifies a comma-separated list of allowed feature label namespaces. By default, nfd-master only allows creating labels in the default feature.node.kubernetes.io and profile.node.kubernetes.io label namespaces and their sub-namespaces (e.g. vendor.feature.node.kubernetes.io and sub.ns.profile.node.kubernetes.io). This option can be used to allow other vendor or application specific namespaces for custom labels from the local and custom feature sources.

The same namespace control and this flag applies Extended Resources (created with -resource-labels), too.

Default: empty

Example:

nfd-master -extra-label-ns=vendor-1.com,vendor-2.io
 

-resource-labels

The -resource-labels flag specifies a comma-separated list of features to be advertised as extended resources instead of labels. Features that have integer values can be published as Extended Resources by listing them in this flag.

Default: empty

Example:

nfd-master -resource-labels=vendor-1.com/feature-1,vendor-2.io/feature-2
-

Logging

The following logging-related flags are inherited from the klog package.

-add_dir_header

If true, adds the file directory to the header of the log messages.

Default: false

-alsologtostderr

Log to standard error as well as files.

Default: false

-log_backtrace_at

When logging hits line file:N, emit a stack trace.

Default: empty

-log_dir

If non-empty, write log files in this directory.

Default: empty

-log_file

If non-empty, use this log file.

Default: empty

-log_file_max_size

Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.

Default: 1800

-logtostderr

Log to standard error instead of files

Default: true

-skip_headers

If true, avoid header prefixes in the log messages.

Default: false

-skip_log_headers

If true, avoid headers when opening log files.

Default: false

-stderrthreshold

Logs at or above this threshold go to stderr.

Default: 2

-v

Number for the log level verbosity.

Default: 0

-vmodule

Comma-separated list of pattern=N settings for file-filtered logging.

Default: empty


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Logging

The following logging-related flags are inherited from the klog package.

-add_dir_header

If true, adds the file directory to the header of the log messages.

Default: false

-alsologtostderr

Log to standard error as well as files.

Default: false

-log_backtrace_at

When logging hits line file:N, emit a stack trace.

Default: empty

-log_dir

If non-empty, write log files in this directory.

Default: empty

-log_file

If non-empty, use this log file.

Default: empty

-log_file_max_size

Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.

Default: 1800

-logtostderr

Log to standard error instead of files

Default: true

-skip_headers

If true, avoid header prefixes in the log messages.

Default: false

-skip_log_headers

If true, avoid headers when opening log files.

Default: false

-stderrthreshold

Logs at or above this threshold go to stderr.

Default: 2

-v

Number for the log level verbosity.

Default: 0

-vmodule

Comma-separated list of pattern=N settings for file-filtered logging.

Default: empty


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/topology-updater-commandline-reference.html b/v0.11/advanced/topology-updater-commandline-reference.html index 21abce62c..d55a1b5b7 100644 --- a/v0.11/advanced/topology-updater-commandline-reference.html +++ b/v0.11/advanced/topology-updater-commandline-reference.html @@ -1,4 +1,4 @@ - Topology Updater Cmdline Reference · Node Feature Discovery

NFD-Topology-Updater Commandline Flags

Table of Contents

  1. NFD-Topology-Updater Commandline Flags
    1. -h, -help
    2. -version
    3. -server
    4. -ca-file
    5. -cert-file
    6. -key-file
    7. -server-name-override
    8. -no-publish
    9. -oneshot
    10. -sleep-interval
    11. -watch-namespace
    12. -kubelet-config-file
    13. -podresources-socket

To quickly view available command line flags execute nfd-topology-updater -help. In a docker container:

docker run gcr.io/k8s-staging-nfd/node-feature-discovery:master nfd-topology-updater -help
+        Topology Updater Cmdline Reference · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

NFD-Topology-Updater Commandline Flags

Table of Contents

  1. NFD-Topology-Updater Commandline Flags
    1. -h, -help
    2. -version
    3. -server
    4. -ca-file
    5. -cert-file
    6. -key-file
    7. -server-name-override
    8. -no-publish
    9. -oneshot
    10. -sleep-interval
    11. -watch-namespace
    12. -kubelet-config-file
    13. -podresources-socket

To quickly view available command line flags execute nfd-topology-updater -help. In a docker container:

docker run gcr.io/k8s-staging-nfd/node-feature-discovery:master nfd-topology-updater -help
 

-h, -help

Print usage and exit.

-version

Print version and exit.

-server

The -server flag specifies the address of the nfd-master endpoint where to connect to.

Default: localhost:8080

Example:

nfd-topology-updater -server=nfd-master.nfd.svc.cluster.local:443
 

-ca-file

The -ca-file is one of the three flags (together with -cert-file and -key-file) controlling the mutual TLS authentication on the topology-updater side. This flag specifies the TLS root certificate that is used for verifying the authenticity of nfd-master.

Default: empty

Note: Must be specified together with -cert-file and -key-file

Example:

nfd-topology-updater -ca-file=/opt/nfd/ca.crt -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key
 

-cert-file

The -cert-file is one of the three flags (together with -ca-file and -key-file) controlling mutual TLS authentication on the topology-updater side. This flag specifies the TLS certificate presented for authenticating outgoing requests.

Default: empty

Note: Must be specified together with -ca-file and -key-file

Example:

nfd-topology-updater -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key -ca-file=/opt/nfd/ca.crt
@@ -10,4 +10,4 @@
 

-watch-namespace

The -watch-namespace specifies the namespace to ensure that resource hardware topology examination only happens for the pods running in the specified namespace. Pods that are not running in the specified namespace are not considered during resource accounting. This is particularly useful for testing/debugging purpose. A "*" value would mean that all the pods would be considered during the accounting process.

Default: "*"

Example:

nfd-topology-updater -watch-namespace=rte
 

-kubelet-config-file

The -kubelet-config-file specifies the path to the Kubelet's configuration file.

Default: /host-var/lib/kubelet/config.yaml

Example:

nfd-topology-updater -kubelet-config-file=/var/lib/kubelet/config.yaml
 

-podresources-socket

The -podresources-socket specifies the path to the Unix socket where kubelet exports a gRPC service to enable discovery of in-use CPUs and devices, and to provide metadata for them.

Default: /host-var/lib/kubelet/pod-resources/kubelet.sock

Example:

nfd-topology-updater -podresources-socket=/var/lib/kubelet/pod-resources/kubelet.sock
-

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/worker-commandline-reference.html b/v0.11/advanced/worker-commandline-reference.html index 10c90c000..a33a23aba 100644 --- a/v0.11/advanced/worker-commandline-reference.html +++ b/v0.11/advanced/worker-commandline-reference.html @@ -1,4 +1,4 @@ - Worker cmdline reference · Node Feature Discovery

Commandline flags of nfd-worker

Table of contents

  1. -h, -help
  2. -version
  3. -config
  4. -options
  5. -server
  6. -ca-file
  7. -cert-file
  8. -key-file
  9. -server-name-override
  10. -feature-sources
  11. -label-sources
  12. -sources
  13. -no-publish
  14. -label-whitelist
  15. -oneshot
  16. -sleep-interval
  17. Logging

To quickly view available command line flags execute nfd-worker -help. In a docker container:

docker run k8s.gcr.io/nfd/node-feature-discovery:v0.11.3 nfd-worker -help
+        Worker cmdline reference · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Commandline flags of nfd-worker

Table of contents

  1. -h, -help
  2. -version
  3. -config
  4. -options
  5. -server
  6. -ca-file
  7. -cert-file
  8. -key-file
  9. -server-name-override
  10. -feature-sources
  11. -label-sources
  12. -sources
  13. -no-publish
  14. -label-whitelist
  15. -oneshot
  16. -sleep-interval
  17. Logging

To quickly view available command line flags execute nfd-worker -help. In a docker container:

docker run k8s.gcr.io/nfd/node-feature-discovery:v0.11.3 nfd-worker -help
 

-h, -help

Print usage and exit.

-version

Print version and exit.

-config

The -config flag specifies the path of the nfd-worker configuration file to use.

Default: /etc/kubernetes/node-feature-discovery/nfd-worker.conf

Example:

nfd-worker -config=/opt/nfd/worker.conf
 

-options

The -options flag may be used to specify and override configuration file options directly from the command line. The required format is the same as in the config file i.e. JSON or YAML. Configuration options specified via this flag will override those from the configuration file:

Default: empty

Example:

nfd-worker -options='{"sources":{"cpu":{"cpuid":{"attributeWhitelist":["AVX","AVX2"]}}}}'
 

-server

The -server flag specifies the address of the nfd-master endpoint where to connect to.

Default: localhost:8080

Example:

nfd-worker -server=nfd-master.nfd.svc.cluster.local:443
@@ -12,4 +12,4 @@
 

-label-whitelist

The -label-whitelist specifies a regular expression for filtering feature labels based on their name. Each label must match against the given reqular expression in order to be published.

Note: The regular expression is only matches against the "basename" part of the label, i.e. to the part of the name after ‘/'. The label namespace is omitted.

Note: This flag takes precedence over the core.labelWhiteList configuration file option.

Default: empty

Example:

nfd-worker -label-whitelist='.*cpuid\.'
 

DEPRECATED: you should use the core.labelWhiteList option in the configuration file, instead.

-oneshot

The -oneshot flag causes nfd-worker to exit after one pass of feature detection.

Default: false

Example:

nfd-worker -oneshot -no-publish
 

-sleep-interval

The -sleep-interval specifies the interval between feature re-detection (and node re-labeling). A non-positive value implies infinite sleep interval, i.e. no re-detection or re-labeling is done.

Note: This flag takes precedence over the core.sleepInterval configuration file option.

Default: 60s

Example:

nfd-worker -sleep-interval=1h
-

DEPRECATED: you should use the core.sleepInterval option in the configuration file, instead.

Logging

The following logging-related flags are inherited from the klog package.

Note: The logger setup can also be specified via the core.klog configuration file options. However, the command line flags take precedence over any corresponding config file options specified.

-add_dir_header

If true, adds the file directory to the header of the log messages.

Default: false

-alsologtostderr

Log to standard error as well as files.

Default: false

-log_backtrace_at

When logging hits line file:N, emit a stack trace.

Default: empty

-log_dir

If non-empty, write log files in this directory.

Default: empty

-log_file

If non-empty, use this log file.

Default: empty

-log_file_max_size

Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.

Default: 1800

-logtostderr

Log to standard error instead of files

Default: true

-skip_headers

If true, avoid header prefixes in the log messages.

Default: false

-skip_log_headers

If true, avoid headers when opening log files.

Default: false

-stderrthreshold

Logs at or above this threshold go to stderr.

Default: 2

-v

Number for the log level verbosity.

Default: 0

-vmodule

Comma-separated list of pattern=N settings for file-filtered logging.

Default: empty


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

DEPRECATED: you should use the core.sleepInterval option in the configuration file, instead.

Logging

The following logging-related flags are inherited from the klog package.

Note: The logger setup can also be specified via the core.klog configuration file options. However, the command line flags take precedence over any corresponding config file options specified.

-add_dir_header

If true, adds the file directory to the header of the log messages.

Default: false

-alsologtostderr

Log to standard error as well as files.

Default: false

-log_backtrace_at

When logging hits line file:N, emit a stack trace.

Default: empty

-log_dir

If non-empty, write log files in this directory.

Default: empty

-log_file

If non-empty, use this log file.

Default: empty

-log_file_max_size

Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.

Default: 1800

-logtostderr

Log to standard error instead of files

Default: true

-skip_headers

If true, avoid header prefixes in the log messages.

Default: false

-skip_log_headers

If true, avoid headers when opening log files.

Default: false

-stderrthreshold

Logs at or above this threshold go to stderr.

Default: 2

-v

Number for the log level verbosity.

Default: 0

-vmodule

Comma-separated list of pattern=N settings for file-filtered logging.

Default: empty


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/advanced/worker-configuration-reference.html b/v0.11/advanced/worker-configuration-reference.html index fc8b7daec..39d8857db 100644 --- a/v0.11/advanced/worker-configuration-reference.html +++ b/v0.11/advanced/worker-configuration-reference.html @@ -1,4 +1,4 @@ - Worker config reference · Node Feature Discovery

Configuration file reference of nfd-worker

Table of contents

  1. core
    1. core.sleepInterval
    2. core.featureSources
    3. core.labelSources
    4. core.sources
    5. core.labelWhiteList
    6. core.noPublish
    7. core.klog
  2. sources
    1. sources.cpu
    2. sources.kernel
    3. soures.pci
    4. sources.usb
    5. sources.custom

See the sample configuration file for a full example configuration.

core

The core section contains common configuration settings that are not specific to any particular feature source.

core.sleepInterval

core.sleepInterval specifies the interval between consecutive passes of feature (re-)detection, and thus also the interval between node re-labeling. A non-positive value implies infinite sleep interval, i.e. no re-detection or re-labeling is done.

Note: Overridden by the deprecated -sleep-interval command line flag (if specified).

Default: 60s

Example:

core:
+        Worker config reference · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Configuration file reference of nfd-worker

Table of contents

  1. core
    1. core.sleepInterval
    2. core.featureSources
    3. core.labelSources
    4. core.sources
    5. core.labelWhiteList
    6. core.noPublish
    7. core.klog
  2. sources
    1. sources.cpu
    2. sources.kernel
    3. soures.pci
    4. sources.usb
    5. sources.custom

See the sample configuration file for a full example configuration.

core

The core section contains common configuration settings that are not specific to any particular feature source.

core.sleepInterval

core.sleepInterval specifies the interval between consecutive passes of feature (re-)detection, and thus also the interval between node re-labeling. A non-positive value implies infinite sleep interval, i.e. no re-detection or re-labeling is done.

Note: Overridden by the deprecated -sleep-interval command line flag (if specified).

Default: 60s

Example:

core:
   sleepInterval: 60s
 

core.featureSources

core.featureSources specifies the list of enabled feature sources. A special value all enables all sources. Prefixing a source name with - indicates that the source will be disabled instead - this is only meaningful when used in conjunction with all. This option allows completely disabling the feature detection so that neither standard feature labels are generated nor the raw feature data is available for custom rule processing.

Default: [all]

Example:

core:
   # Enable all but cpu and local sources
@@ -65,4 +65,4 @@
           matchExpressions:
             class: {op: In, value: ["0200"]}
             vendor: {op: In, value: ["8086"]}
-

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/contributing/index.html b/v0.11/contributing/index.html index 7a313b55b..90b7f8bf4 100644 --- a/v0.11/contributing/index.html +++ b/v0.11/contributing/index.html @@ -1 +1 @@ - Contributing · Node Feature Discovery

Contributing


Community

You can reach us via the following channels:

Governance

This is a SIG-node subproject, hosted under the Kubernetes SIGs organization in Github. The project was established in 2016 and was migrated to Kubernetes SIGs in 2018.

License

This is open source software released under the Apache 2.0 License.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file + Contributing · Node Feature Discovery
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Contributing


Community

You can reach us via the following channels:

Governance

This is a SIG-node subproject, hosted under the Kubernetes SIGs organization in Github. The project was established in 2016 and was migrated to Kubernetes SIGs in 2018.

License

This is open source software released under the Apache 2.0 License.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/deployment-and-usage.html b/v0.11/get-started/deployment-and-usage.html index 34d83d079..4b6237a8e 100644 --- a/v0.11/get-started/deployment-and-usage.html +++ b/v0.11/get-started/deployment-and-usage.html @@ -1,4 +1,4 @@ - Deployment and usage · Node Feature Discovery

Deployment and usage

Table of contents

  1. Image variants
    1. Full
    2. Minimal
  2. Deployment options
    1. Operator
    2. Deployment with kustomize
    3. Deployment with Helm
    4. Build your own
  3. Usage
    1. NFD-Master
    2. NFD-Worker
    3. NFD-Topology-Updater
    4. Communication security with TLS
  4. Worker configuration
  5. Using node labels
  6. Uninstallation
    1. Operator was used for deployment
    2. Manual
    3. Removing feature labels

Image variants

NFD currently offers two variants of the container image. The "full" variant is currently deployed by default. Released container images are available for x86_64 and Arm64 architectures.

Full

This image is based on debian:buster-slim and contains a full Linux system for running shell-based nfd-worker hooks and doing live debugging and diagnosis of the NFD images.

Minimal

This is a minimal image based on gcr.io/distroless/base and only supports running statically linked binaries.

The container image tag has suffix -minimal (e.g. k8s.gcr.io/nfd/node-feature-discovery:v0.11.3-minimal)

Deployment options

Operator

Deployment using the Node Feature Discovery Operator is recommended to be done via operatorhub.io.

  1. You need to have OLM installed. If you don't, take a look at the latest release for detailed instructions.
  2. Install the operator:

    kubectl create -f https://operatorhub.io/install/nfd-operator.yaml
    +        Deployment and usage · Node Feature Discovery                      
    This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

    Deployment and usage

    Table of contents

    1. Image variants
      1. Full
      2. Minimal
    2. Deployment options
      1. Operator
      2. Deployment with kustomize
      3. Deployment with Helm
      4. Build your own
    3. Usage
      1. NFD-Master
      2. NFD-Worker
      3. NFD-Topology-Updater
      4. Communication security with TLS
    4. Worker configuration
    5. Using node labels
    6. Uninstallation
      1. Operator was used for deployment
      2. Manual
      3. Removing feature labels

    Image variants

    NFD currently offers two variants of the container image. The "full" variant is currently deployed by default. Released container images are available for x86_64 and Arm64 architectures.

    Full

    This image is based on debian:buster-slim and contains a full Linux system for running shell-based nfd-worker hooks and doing live debugging and diagnosis of the NFD images.

    Minimal

    This is a minimal image based on gcr.io/distroless/base and only supports running statically linked binaries.

    The container image tag has suffix -minimal (e.g. k8s.gcr.io/nfd/node-feature-discovery:v0.11.3-minimal)

    Deployment options

    Operator

    Deployment using the Node Feature Discovery Operator is recommended to be done via operatorhub.io.

    1. You need to have OLM installed. If you don't, take a look at the latest release for detailed instructions.
    2. Install the operator:

      kubectl create -f https://operatorhub.io/install/nfd-operator.yaml
       
    3. Create NodeFeatureDiscovery object (in nfd namespace here):

      cat << EOF | kubectl apply -f -
       apiVersion: v1
       kind: Namespace
      @@ -154,4 +154,4 @@ kubectl delete clusterrolebinding nfd-master
       

      Removing feature labels

      NFD-Master has a special -prune command line flag for removing all nfd-related node labels, annotations and extended resources from the cluster.

      kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/prune?ref=v0.11.3
       kubectl -n node-feature-discovery wait job.batch/nfd-master --for=condition=complete && \
           kubectl delete -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/prune?ref=v0.11.3
      -

      NOTE: You must run prune before removing the RBAC rules (serviceaccount, clusterrole and clusterrolebinding).


    Node Feature Discovery
    v0.11
    Versions
    GitHub
    Homepage
    Issues
    Download

    This Software is under the terms of Apache License 2.0.
    \ No newline at end of file +

    NOTE: You must run prune before removing the RBAC rules (serviceaccount, clusterrole and clusterrolebinding).


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/examples-and-demos.html b/v0.11/get-started/examples-and-demos.html index 32d261456..d3b542c5b 100644 --- a/v0.11/get-started/examples-and-demos.html +++ b/v0.11/get-started/examples-and-demos.html @@ -1 +1 @@ - Examples and demos · Node Feature Discovery

Examples and demos

Table of contents

  1. Demos
    1. Usage demo
    2. Demo use case

This page contains usage examples and demos.

Demos

Usage demo

asciicast

Demo use case

A demo on the benefits of using node feature discovery can be found in the source code repository under demo/.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file + Examples and demos · Node Feature Discovery
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Examples and demos

Table of contents

  1. Demos
    1. Usage demo
    2. Demo use case

This page contains usage examples and demos.

Demos

Usage demo

asciicast

Demo use case

A demo on the benefits of using node feature discovery can be found in the source code repository under demo/.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/features.html b/v0.11/get-started/features.html index 169f2c611..f23e78e0a 100644 --- a/v0.11/get-started/features.html +++ b/v0.11/get-started/features.html @@ -1,4 +1,4 @@ - Feature labels · Node Feature Discovery

Feature labels

Table of contents

  1. Built-in labels
    1. CPU
    2. IOMMU (deprecated)
    3. Kernel
    4. Memory
    5. Network
    6. PCI
    7. USB
    8. Storage
    9. System
    10. Custom
  2. User defined labels
  3. Extended resources

Features are advertised as labels in the Kubernetes Node object.

Built-in labels

Label creation in nfd-worker is performed by a set of separate modules called label sources. The core.labelSources configuration option (or -label-sources flag) of nfd-worker controls which sources to enable for label generation.

All built-in labels use the feature.node.kubernetes.io label namespace and have the following format.

feature.node.kubernetes.io/<feature> = <value>
+        Feature labels · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Feature labels

Table of contents

  1. Built-in labels
    1. CPU
    2. IOMMU (deprecated)
    3. Kernel
    4. Memory
    5. Network
    6. PCI
    7. USB
    8. Storage
    9. System
    10. Custom
  2. User defined labels
  3. Extended resources

Features are advertised as labels in the Kubernetes Node object.

Built-in labels

Label creation in nfd-worker is performed by a set of separate modules called label sources. The core.labelSources configuration option (or -label-sources flag) of nfd-worker controls which sources to enable for label generation.

All built-in labels use the feature.node.kubernetes.io label namespace and have the following format.

feature.node.kubernetes.io/<feature> = <value>
 

Note: Consecutive runs of nfd-worker will update the labels on a given node. If features are not discovered on a consecutive run, the corresponding label will be removed. This includes any restrictions placed on the consecutive run, such as restricting discovered features with the -label-whitelist option.

CPU

Feature name Value Description
cpu-cpuid.<cpuid-flag> true CPU capability is supported. NOTE: the capability might be supported but not enabled.
cpu-hardware_multithreading true Hardware multithreading, such as Intel HTT, enabled (number of logical CPUs is greater than physical CPUs)
cpu-power.sst_bf.enabled true Intel SST-BF (Intel Speed Select Technology - Base frequency) enabled
cpu-pstate.status string The status of the Intel pstate driver when in use and enabled, either ‘active' or ‘passive'.
cpu-pstate.turbo bool Set to ‘true' if turbo frequencies are enabled in Intel pstate driver, set to ‘false' if they have been disabled.
cpu-pstate.scaling_governor string The value of the Intel pstate scaling_governor when in use, either ‘powersave' or ‘performance'.
cpu-cstate.enabled bool Set to ‘true' if cstates are set in the intel_idle driver, otherwise set to ‘false'. Unset if intel_idle cpuidle driver is not active.
cpu-rdt.<rdt-flag> true Intel RDT capability is supported. See RDT flags for details.
cpu-sgx.enabled true Set to ‘true' if Intel SGX is enabled in BIOS (based a non-zero sum value of SGX EPC section sizes).
cpu-se.enabled true Set to ‘true' if IBM Secure Execution for Linux (IBM Z & LinuxONE) is available and enabled (requires /sys/firmware/uv/prot_virt_host facility)
cpu-model.vendor_id string Comparable CPU vendor ID.
cpu-model.family int CPU family.
cpu-model.id int CPU model number.

The CPU label source is configurable, see worker configuration and sources.cpu configuration options for details.

X86 CPUID flags (partial list)

Flag Description
ADX Multi-Precision Add-Carry Instruction Extensions (ADX)
AESNI Advanced Encryption Standard (AES) New Instructions (AES-NI)
AVX Advanced Vector Extensions (AVX)
AVX2 Advanced Vector Extensions 2 (AVX2)
AMXBF16 Advanced Matrix Extension, tile multiplication operations on BFLOAT16 numbers
AMXINT8 Advanced Matrix Extension, tile multiplication operations on 8-bit integers
AMXTILE Advanced Matrix Extension, base tile architecture support
AVX512BF16 AVX-512 BFLOAT16 instructions
AVX512BITALG AVX-512 bit Algorithms
AVX512BW AVX-512 byte and word Instructions
AVX512CD AVX-512 conflict detection instructions
AVX512DQ AVX-512 doubleword and quadword instructions
AVX512ER AVX-512 exponential and reciprocal instructions
AVX512F AVX-512 foundation
AVX512FP16 AVX-512 FP16 instructions
AVX512IFMA AVX-512 integer fused multiply-add instructions
AVX512PF AVX-512 prefetch instructions
AVX512VBMI AVX-512 vector bit manipulation instructions
AVX512VBMI2 AVX-512 vector bit manipulation instructions, version 2
AVX512VL AVX-512 vector length extensions
AVX512VNNI AVX-512 vector neural network instructions
AVX512VP2INTERSECT AVX-512 intersect for D/Q
AVX512VPOPCNTDQ AVX-512 vector population count doubleword and quadword
ENQCMD Enqueue Command
GFNI Galois Field New Instructions
HYPERVISOR Running under hypervisor
VAES AVX-512 vector AES instructions
VPCLMULQDQ Carry-less multiplication quadword

By default, the following CPUID flags have been blacklisted: BMI1, BMI2, CLMUL, CMOV, CX16, ERMS, F16C, HTT, LZCNT, MMX, MMXEXT, NX, POPCNT, RDRAND, RDSEED, RDTSCP, SGX, SSE, SSE2, SSE3, SSE4, SSE42 and SSSE3. See sources.cpu configuration options to change the behavior.

See the full list in github.com/klauspost/cpuid.

Arm CPUID flags (partial list)

Flag Description
IDIVA Integer divide instructions available in ARM mode
IDIVT Integer divide instructions available in Thumb mode
THUMB Thumb instructions
FASTMUL Fast multiplication
VFP Vector floating point instruction extension (VFP)
VFPv3 Vector floating point extension v3
VFPv4 Vector floating point extension v4
VFPD32 VFP with 32 D-registers
HALF Half-word loads and stores
EDSP DSP extensions
NEON NEON SIMD instructions
LPAE Large Physical Address Extensions

Arm64 CPUID flags (partial list)

Flag Description
AES Announcing the Advanced Encryption Standard
EVSTRM Event Stream Frequency Features
FPHP Half Precision(16bit) Floating Point Data Processing Instructions
ASIMDHP Half Precision(16bit) Asimd Data Processing Instructions
ATOMICS Atomic Instructions to the A64
ASIMRDM Support for Rounding Double Multiply Add/Subtract
PMULL Optional Cryptographic and CRC32 Instructions
JSCVT Perform Conversion to Match Javascript
DCPOP Persistent Memory Support

Intel RDT flags

Flag Description
RDTMON Intel RDT Monitoring Technology
RDTCMT Intel Cache Monitoring (CMT)
RDTMBM Intel Memory Bandwidth Monitoring (MBM)
RDTL3CA Intel L3 Cache Allocation Technology
RDTl2CA Intel L2 Cache Allocation Technology
RDTMBA Intel Memory Bandwidth Allocation (MBA) Technology

IOMMU (deprecated)

Feature Value Description
iommu.enabled true IOMMU is present and enabled in the kernel

DEPRECATED: The iommu source is deprecated and not enabled by default.

Kernel

Feature Value Description
kernel-config.<option> true Kernel config option is enabled (set ‘y' or ‘m'). Default options are NO_HZ, NO_HZ_IDLE, NO_HZ_FULL and PREEMPT
kernel-selinux.enabled true Selinux is enabled on the node
kernel-version.full string Full kernel version as reported by /proc/sys/kernel/osrelease (e.g. ‘4.5.6-7-g123abcde')
kernel-version.major string First component of the kernel version (e.g. ‘4')
kernel-version.minor string Second component of the kernel version (e.g. ‘5')
kernel-version.revision string Third component of the kernel version (e.g. ‘6')

The kernel label source is configurable, see worker configuration and sources.kernel configuration options for details.

Memory

Feature Value Description
memory-numa true Multiple memory nodes i.e. NUMA architecture detected
memory-nv.present true NVDIMM device(s) are present
memory-nv.dax true NVDIMM region(s) configured in DAX mode are present

Network

Feature Value Description
network-sriov.capable true Single Root Input/Output Virtualization (SR-IOV) enabled Network Interface Card(s) present
network-sriov.configured true SR-IOV virtual functions have been configured

PCI

Feature Value Description
pci-<device label>.present true PCI device is detected
pci-<device label>.sriov.capable true Single Root Input/Output Virtualization (SR-IOV) enabled PCI device present

<device label> is format is configurable and set to <class>_<vendor> by default. For more more details about configuration of the pci labels, see sources.pci options and worker configuration instructions.

USB

Feature Value Description
usb-<device label>.present true USB device is detected

<device label> is format is configurable and set to <class>_<vendor>_<device> by default. For more more details about configuration of the usb labels, see sources.usb options and worker configuration instructions.

Storage

Feature Value Description
storage-nonrotationaldisk true Non-rotational disk, like SSD, is present in the node

System

Feature Value Description
system-os_release.ID string Operating system identifier
system-os_release.VERSION_ID string Operating system version identifier (e.g. ‘6.7')
system-os_release.VERSION_ID.major string First component of the OS version id (e.g. ‘6')
system-os_release.VERSION_ID.minor string Second component of the OS version id (e.g. ‘7')

Custom

The custom label source is designed for creating user defined labels. However, it has a few statically defined built-in labels:

Feature Value Description
custom-rdma.capable true The node has an RDMA capable Network adapter
custom-rdma.enabled true The node has the needed RDMA modules loaded to run RDMA traffic

User defined labels

NFD has many extension points for creating vendor and application specific labels. See the customization guide for detailed documentation.

Extended resources

This feature is experimental and by no means a replacement for the usage of device plugins.

Labels which have integer values, can be promoted to Kubernetes extended resources by listing them to the master -resource-labels command line flag. These labels won't then show in the node label section, they will appear only as extended resources.

An example use-case for the extended resources could be based on a hook which creates a label for the node SGX EPC memory section size. By giving the name of that label in the -resource-labels flag, that value will then turn into an extended resource of the node, allowing PODs to request that resource and the Kubernetes scheduler to schedule such PODs to only those nodes which have a sufficient capacity of said resource left.

Similar to labels, the default namespace feature.node.kubernetes.io is automatically prefixed to the extended resource, if the promoted label doesn't have a namespace.

Example usage of the command line arguments, using a new namespace: nfd-master -resource-labels=my_source-my.feature,sgx.some.ns/epc -extra-label-ns=sgx.some.ns

The above would result in following extended resources provided that related labels exist:

  sgx.some.ns/epc: <label value>
   feature.node.kubernetes.io/my_source-my.feature: <label value>
-

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/index.html b/v0.11/get-started/index.html index db6b1e838..f621f771c 100644 --- a/v0.11/get-started/index.html +++ b/v0.11/get-started/index.html @@ -1,4 +1,4 @@ - Get started · Node Feature Discovery

Node Feature Discovery

Welcome to Node Feature Discovery – a Kubernetes add-on for detecting hardware features and system configuration!

Continue to:

  • Introduction for more details on the project.

  • Quick start for quick step-by-step instructions on how to get NFD running on your cluster.

Quick-start – the short-short version

$ kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.11.3
+        Get started · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Node Feature Discovery

Welcome to Node Feature Discovery – a Kubernetes add-on for detecting hardware features and system configuration!

Continue to:

  • Introduction for more details on the project.

  • Quick start for quick step-by-step instructions on how to get NFD running on your cluster.

Quick-start – the short-short version

$ kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.11.3
   namespace/node-feature-discovery created
   serviceaccount/nfd-master created
   clusterrole.rbac.authorization.k8s.io/nfd-master created
@@ -22,4 +22,4 @@
     "feature.node.kubernetes.io/cpu-cpuid.AESNI": "true",
 ...
 
-

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/introduction.html b/v0.11/get-started/introduction.html index 157a83e8d..57bb2ba45 100644 --- a/v0.11/get-started/introduction.html +++ b/v0.11/get-started/introduction.html @@ -1,4 +1,4 @@ - Introduction · Node Feature Discovery

Introduction

Table of contents

  1. NFD-Master
  2. NFD-Worker
  3. NFD-Topology-Updater
  4. Feature Discovery
  5. Node annotations
  6. NodeResourceTopology CR

This software enables node feature discovery for Kubernetes. It detects hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels.

NFD consists of three software components:

  1. nfd-master
  2. nfd-worker
  3. nfd-topology-updater

NFD-Master

NFD-Master is the daemon responsible for communication towards the Kubernetes API. That is, it receives labeling requests from the worker and modifies node objects accordingly.

NFD-Worker

NFD-Worker is a daemon responsible for feature detection. It then communicates the information to nfd-master which does the actual node labeling. One instance of nfd-worker is supposed to be running on each node of the cluster,

NFD-Topology-Updater

NFD-Topology-Updater is a daemon responsible for examining allocated resources on a worker node to account for resources available to be allocated to new pod on a per-zone basis (where a zone can be a NUMA node). It then communicates the information to nfd-master which does the NodeResourceTopology CR creation corresponding to all the nodes in the cluster. One instance of nfd-topology-updater is supposed to be running on each node of the cluster.

Feature Discovery

Feature discovery is divided into domain-specific feature sources:

  • CPU
  • Kernel
  • Memory
  • Network
  • PCI
  • Storage
  • System
  • USB
  • Custom (rule-based custom features)
  • Local (hooks for user-specific features)
  • IOMMU (deprecated)

Each feature source is responsible for detecting a set of features which. in turn, are turned into node feature labels. Feature labels are prefixed with feature.node.kubernetes.io/ and also contain the name of the feature source. Non-standard user-specific feature labels can be created with the local and custom feature sources.

An overview of the default feature labels:

{
+        Introduction · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Introduction

Table of contents

  1. NFD-Master
  2. NFD-Worker
  3. NFD-Topology-Updater
  4. Feature Discovery
  5. Node annotations
  6. NodeResourceTopology CR

This software enables node feature discovery for Kubernetes. It detects hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels.

NFD consists of three software components:

  1. nfd-master
  2. nfd-worker
  3. nfd-topology-updater

NFD-Master

NFD-Master is the daemon responsible for communication towards the Kubernetes API. That is, it receives labeling requests from the worker and modifies node objects accordingly.

NFD-Worker

NFD-Worker is a daemon responsible for feature detection. It then communicates the information to nfd-master which does the actual node labeling. One instance of nfd-worker is supposed to be running on each node of the cluster,

NFD-Topology-Updater

NFD-Topology-Updater is a daemon responsible for examining allocated resources on a worker node to account for resources available to be allocated to new pod on a per-zone basis (where a zone can be a NUMA node). It then communicates the information to nfd-master which does the NodeResourceTopology CR creation corresponding to all the nodes in the cluster. One instance of nfd-topology-updater is supposed to be running on each node of the cluster.

Feature Discovery

Feature discovery is divided into domain-specific feature sources:

  • CPU
  • Kernel
  • Memory
  • Network
  • PCI
  • Storage
  • System
  • USB
  • Custom (rule-based custom features)
  • Local (hooks for user-specific features)
  • IOMMU (deprecated)

Each feature source is responsible for detecting a set of features which. in turn, are turned into node feature labels. Feature labels are prefixed with feature.node.kubernetes.io/ and also contain the name of the feature source. Non-standard user-specific feature labels can be created with the local and custom feature sources.

An overview of the default feature labels:

{
   "feature.node.kubernetes.io/cpu-<feature-name>": "true",
   "feature.node.kubernetes.io/custom-<feature-name>": "true",
   "feature.node.kubernetes.io/kernel-<feature name>": "<feature value>",
@@ -49,4 +49,4 @@
         capacity: 3
         allocatable: 3
         available: 3
-

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/get-started/quick-start.html b/v0.11/get-started/quick-start.html index 7f704e263..c064f9faf 100644 --- a/v0.11/get-started/quick-start.html +++ b/v0.11/get-started/quick-start.html @@ -1,4 +1,4 @@ - Quick start · Node Feature Discovery

Quick start

Minimal steps to deploy latest released version of NFD in your cluster.

Installation

Deploy with kustomize – creates a new namespace, service and required RBAC rules and deploys nfd-master and nfd-worker daemons.

kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.11.3
+        Quick start · Node Feature Discovery                      
This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

Quick start

Minimal steps to deploy latest released version of NFD in your cluster.

Installation

Deploy with kustomize – creates a new namespace, service and required RBAC rules and deploys nfd-master and nfd-worker daemons.

kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.11.3
 

Verify

Wait until NFD master and NFD worker are running.

$ kubectl -n node-feature-discovery get ds,deploy
 NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
 daemonset.apps/nfd-worker    2         2         2       2            2           <none>          10s
@@ -91,4 +91,4 @@ Zones:
         Available:    2
     Type:             Node
 Events:               <none>
-

The CR instances created can be used to gain insight into the allocatable resources along with the granularity of those resources at a per-zone level (represented by node-0 and node-1 in the above example) or can be used by an external entity (e.g. topology-aware scheduler plugin) to take an action based on the gathered information.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file +

The CR instances created can be used to gain insight into the allocatable resources along with the granularity of those resources at a per-zone level (represented by node-0 and node-1 in the above example) or can be used by an external entity (e.g. topology-aware scheduler plugin) to take an action based on the gathered information.


Node Feature Discovery
v0.11
Versions
GitHub
Homepage
Issues
Download

This Software is under the terms of Apache License 2.0.
\ No newline at end of file diff --git a/v0.11/search.html b/v0.11/search.html index 15f62b1bd..ba768b8e1 100644 --- a/v0.11/search.html +++ b/v0.11/search.html @@ -1 +1 @@ - Search · Node Feature Discovery

Searching


    Node Feature Discovery
    v0.11
    Versions
    GitHub
    Homepage
    Issues
    Download

    This Software is under the terms of Apache License 2.0.
    \ No newline at end of file + Search · Node Feature Discovery
    This documentation is for Node Feature Discovery version that is no longer supported. Please upgrade and visit the documentation of the latest stable release.

    Searching


      Node Feature Discovery
      v0.11
      Versions
      GitHub
      Homepage
      Issues
      Download

      This Software is under the terms of Apache License 2.0.
      \ No newline at end of file diff --git a/v0.11/sitemap.xml b/v0.11/sitemap.xml index 317649997..0fa4365ff 100644 --- a/v0.11/sitemap.xml +++ b/v0.11/sitemap.xml @@ -1 +1 @@ - https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/developer-guide.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/ 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/introduction.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/master-commandline-reference.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/ 0.1 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/quick-start.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/contributing/ 0.5 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/worker-commandline-reference.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/deployment-and-usage.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/worker-configuration-reference.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/features.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/examples-and-demos.html 0.5 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/topology-updater-commandline-reference.html 1.0 2022-11-01T05:56:54-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/customization-guide.html 1.0 2022-11-01T05:56:54-05:00 \ No newline at end of file + https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/developer-guide.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/ 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/introduction.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/master-commandline-reference.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/ 0.1 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/quick-start.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/contributing/ 0.5 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/worker-commandline-reference.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/deployment-and-usage.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/worker-configuration-reference.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/features.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/get-started/examples-and-demos.html 0.5 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/topology-updater-commandline-reference.html 1.0 2023-04-18T11:28:35-05:00 https://kubernetes-sigs.github.com/node-feature-discovery/v0.11/advanced/customization-guide.html 1.0 2023-04-18T11:28:35-05:00 \ No newline at end of file