Node Feature Discovery

# NFD-Topology-Updater

NFD-Topology-Updater is preferably run as a Kubernetes DaemonSet. This assures re-examination on regular intervals and/or per pod life-cycle events, capturing changes in the allocated resources and hence the allocatable resources on a per-zone basis by updating NodeResourceTopology custom resources. It makes sure that new NodeResourceTopology instances are created for each new nodes that get added to the cluster.

When run as a daemonset, nodes are re-examined for the allocated resources (to determine the information of the allocatable resources on a per-zone basis where a zone can be a NUMA node) at an interval specified using the `-sleep-interval` option. The default sleep interval is set to 60s which is the value when no -sleep-interval is specified. The re-examination can be disabled by setting the sleep-interval to 0.

Another option is to configure the updater to update the allocated resources per pod life-cycle events. The updater will monitor the checkpoint file stated in `-kubelet-state-dir` and triggers an update for every change occurs in the files.

In addition, it can avoid examining specific allocated resources given a configuration of resources to exclude via `-excludeList`

## Deployment Notes

Kubelet PodResource API is a prerequisite for nfd-topology-updater to be able to run.

Preceding Kubernetes v1.23, the `kubelet` must be started with `--feature-gates=KubeletPodResourcesGetAllocatable=true`.

Starting from Kubernetes v1.23, the `KubeletPodResourcesGetAllocatable` feature gate. is enabled by default

## Topology-Updater Configuration

NFD-Topology-Updater supports configuration through a configuration file. The default location is `/etc/kubernetes/node-feature-discovery/topology-updater.conf`, but, this can be changed by specifying the`-config` command line flag.

> NOTE: unlike nfd-worker, dynamic configuration updates are not currently supported.

Topology-Updater 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-topology-updater deployment templates create an empty configmap and mount it inside the nfd-topology-updater containers. In kustomize deployments, configuration can be edited with:

    kubectl -n ${NFD_NS} edit configmap nfd-topology-updater-conf

In Helm deployments, Topology Updater parameters `toplogyUpdater.config` can be used to edit the respective configuration.

See nfd-topology-updater 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 a configuration.

Node Feature Discovery
v0.13

Versions

GitHub
  Homepage
  Issues
  Download

This Software is under the terms of Apache License 2.0.