2022-11-02 14:34:37 +02:00
|
|
|
---
|
|
|
|
title: "NFD-Topology-Updater"
|
|
|
|
layout: default
|
|
|
|
sort: 5
|
|
|
|
---
|
|
|
|
|
|
|
|
# NFD-Topology-Updater
|
|
|
|
{: .no_toc}
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
NFD-Topology-Updater is preferably run as a Kubernetes DaemonSet. This assures
|
|
|
|
re-examination (and CR updates) on regular intervals capturing changes in
|
|
|
|
the allocated resources and hence the allocatable resources on a per zone
|
|
|
|
basis. It makes sure that more CR instances are created as new nodes get
|
|
|
|
added to the cluster. Topology-Updater connects to the nfd-master service
|
|
|
|
to create CR instances corresponding to nodes.
|
|
|
|
|
|
|
|
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`](../reference/topology-updater-commandline-reference.html#-sleep-interval)
|
2022-11-09 19:25:58 +02:00
|
|
|
option. The default sleep interval is set to 60s which is the value when no
|
2022-11-02 14:34:37 +02:00
|
|
|
-sleep-interval is specified.
|
2022-11-09 19:25:58 +02:00
|
|
|
In addition, it can avoid examining specific allocated resources
|
|
|
|
given a configuration of resources to exclude via [`-excludeList`](../reference/topology-updater-configuration-reference.md#excludelist)
|
|
|
|
|
|
|
|
## 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:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
kubectl -n ${NFD_NS} edit configmap nfd-topology-updater-conf
|
|
|
|
```
|
|
|
|
|
|
|
|
In Helm deployments,
|
|
|
|
[Topology Updater parameters](../deployment/helm.md#topology-updater-parameters)
|
|
|
|
`toplogyUpdater.config` can be used to edit the respective configuration.
|
|
|
|
|
|
|
|
See
|
|
|
|
[nfd-topology-updater configuration file reference](../reference/topology-updater-configuration-reference.md)
|
|
|
|
for more details.
|
|
|
|
The (empty-by-default)
|
|
|
|
[example config](https://github.com/kubernetes-sigs/node-feature-discovery/blob/{{site.release}}/deployment/components/topology-updater-config/nfd-topology-updater.conf.example)
|
|
|
|
contains all available configuration options and can be used as a reference
|
|
|
|
for creating a configuration.
|