Introduce two main sections "Deployment" and "Usage" and move "Developer guide" to the top level, too. In particular, split the huge deployment-and-usage file into multiple parts under the new main sections. Move customization guide from "Advanced" to "Usage". This patch also renames "Advanced" to "Reference" as only that is left there is reference documentation.
2.7 KiB
title | layout | sort |
---|---|---|
NFD-Worker | default | 4 |
NFD-Worker
{: .no_toc}
Table of contents
{: .no_toc .text-delta}
- TOC {:toc}
NFD-Worker is preferably run as a Kubernetes DaemonSet. This assures re-labeling on regular intervals capturing changes in the system configuration and makes sure that new nodes are labeled as they are added to the cluster. Worker connects to the nfd-master service to advertise hardware features.
When run as a daemonset, nodes are re-labeled at an default interval of 60s.
This can be changed by using the
core.sleepInterval
config option (or
-sleep-interval
command line flag).
The worker configuration file is watched and re-read on every change which provides a simple mechanism of dynamic run-time reconfiguration. See worker configuration for more details.
Worker configuration
NFD-Worker supports dynamic configuration through a configuration file. The
default location is /etc/kubernetes/node-feature-discovery/nfd-worker.conf
,
but, this can be changed by specifying the-config
command line flag.
Configuration file is re-read whenever it is modified which makes run-time
re-configuration of nfd-worker straightforward.
Worker configuration file is read inside the container, and thus, Volumes and VolumeMounts are needed to make your configuration available for NFD. The preferred method is to use a ConfigMap which provides easy deployment and re-configurability.
The provided nfd-worker deployment templates create an empty configmap and mount it inside the nfd-worker containers. In kustomize deployments, configuration can be edited with:
kubectl -n ${NFD_NS} edit configmap nfd-worker-conf
In Helm deployments,
Worker pod parameter
worker.config
can be used to edit the respective configuration.
See nfd-worker configuration file reference for more details. The (empty-by-default) example config contains all available configuration options and can be used as a reference for creating creating a configuration.
Configuration options can also be specified via the -options
command line
flag, in which case no mounts need to be used. The same format as in the config
file must be used, i.e. JSON (or YAML). For example:
-options='{"sources": { "pci": { "deviceClassWhitelist": ["12"] } } }'
Configuration options specified from the command line will override those read from the config file.