3.5. Utilisation de l'outil de mise à jour de la topologie NFD
L'outil de mise à jour de la topologie NFD (Node Feature Discovery) est un démon chargé d'examiner les ressources allouées sur un nœud de travail. Il comptabilise les ressources disponibles pour être allouées à un nouveau pod sur une base par zone, une zone pouvant être un nœud NUMA (Non-Uniform Memory Access). L'outil NFD Topology Updater communique les informations à nfd-master, qui crée une ressource personnalisée (CR) NodeResourceTopology correspondant à tous les nœuds de travail de la grappe. Une instance de NFD Topology Updater s'exécute sur chaque nœud de la grappe.
Pour activer les travailleurs de la mise à jour de la topologie dans la BDNF, réglez la variable topologyupdater sur true dans la CR NodeFeatureDiscovery, comme décrit dans la section Using the Node Feature Discovery Operator.
3.5.1. NodeResourceTopology CR
Lorsqu'il est exécuté avec NFD Topology Updater, NFD crée des instances de ressources personnalisées correspondant à la topologie matérielle des ressources du nœud, par exemple :
apiVersion: topology.node.k8s.io/v1alpha1
kind: NodeResourceTopology
metadata:
name: node1
topologyPolicies: ["SingleNUMANodeContainerLevel"]
zones:
- name: node-0
type: Node
resources:
- name: cpu
capacity: 20
allocatable: 16
available: 10
- name: vendor/nic1
capacity: 3
allocatable: 3
available: 3
- name: node-1
type: Node
resources:
- name: cpu
capacity: 30
allocatable: 30
available: 15
- name: vendor/nic2
capacity: 6
allocatable: 6
available: 6
- name: node-2
type: Node
resources:
- name: cpu
capacity: 30
allocatable: 30
available: 15
- name: vendor/nic1
capacity: 3
allocatable: 3
available: 33.5.2. Drapeaux de la ligne de commande de l'outil de mise à jour de la topologie NFD
Pour afficher les drapeaux de ligne de commande disponibles, exécutez la commande nfd-topology-updater -help. Par exemple, dans un conteneur podman, exécutez la commande suivante :
$ podman run gcr.io/k8s-staging-nfd/node-feature-discovery:master nfd-topology-updater -help
-fichier ca
Le drapeau -ca-file est l'un des trois drapeaux, avec les drapeaux -cert-file et `-key-file`, qui contrôle l'authentification mutuelle TLS sur le NFD Topology Updater. Ce drapeau spécifie le certificat racine TLS utilisé pour vérifier l'authenticité de nfd-master.
Défaut : vide
L'indicateur -ca-file doit être spécifié en même temps que les indicateurs -cert-file et -key-file.
Exemple :
$ nfd-topology-updater -ca-file=/opt/nfd/ca.crt -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key
-fichier-certificat
L'indicateur -cert-file est l'un des trois indicateurs, avec les indicateurs -ca-file et -key-file flags, qui contrôlent l'authentification TLS mutuelle sur l'outil de mise à jour de la topologie NFD. Cet indicateur spécifie le certificat TLS présenté pour l'authentification des requêtes sortantes.
Défaut : vide
L'indicateur -cert-file doit être spécifié en même temps que les indicateurs -ca-file et -key-file.
Exemple :
$ nfd-topology-updater -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key -ca-file=/opt/nfd/ca.crt
-h, -help
Imprimer l'utilisation et quitter.
-fichier-clé
Le drapeau -key-file est l'un des trois drapeaux, avec les drapeaux -ca-file et -cert-file, qui contrôlent l'authentification mutuelle TLS sur le NFD Topology Updater. Ce drapeau spécifie la clé privée correspondant au fichier de certificat donné, ou -cert-file, qui est utilisée pour authentifier les demandes sortantes.
Défaut : vide
L'indicateur -key-file doit être spécifié en même temps que les indicateurs -ca-file et -cert-file.
Exemple :
$ nfd-topology-updater -key-file=/opt/nfd/updater.key -cert-file=/opt/nfd/updater.crt -ca-file=/opt/nfd/ca.crt
-kubelet-config-file
L'adresse -kubelet-config-file indique le chemin d'accès au fichier de configuration de la Kubelet.
Par défaut : /host-var/lib/kubelet/config.yaml
Exemple :
$ nfd-topology-updater -kubelet-config-file=/var/lib/kubelet/config.yaml
-pas de publication
Le drapeau -no-publish désactive toute communication avec le maître nfd, ce qui en fait un drapeau de fonctionnement à vide pour nfd-topology-updater. NFD Topology Updater exécute normalement la détection de topologie matérielle des ressources, mais aucune demande de CR n'est envoyée à nfd-master.
Par défaut : false
Exemple :
$ nfd-topology-updater -no-publish
3.5.2.1. -one-shot
L'indicateur -oneshot permet à l'outil de mise à jour de la topologie NFD de quitter le système après un passage de la détection de la topologie matérielle des ressources.
Par défaut : false
Exemple :
$ nfd-topology-updater -oneshot -no-publish
-podresources-socket
L'option -podresources-socket spécifie le chemin d'accès au socket Unix où kubelet exporte un service gRPC pour permettre la découverte des unités centrales et des périphériques en cours d'utilisation, et pour fournir des métadonnées à leur sujet.
Par défaut : /host-var/liblib/kubelet/pod-resources/kubelet.sock
Exemple :
$ nfd-topology-updater -podresources-socket=/var/lib/kubelet/pod-resources/kubelet.sock
-serveur
Le drapeau -server spécifie l'adresse du point de terminaison nfd-master auquel se connecter.
Par défaut : localhost:8080
Exemple :
$ nfd-topology-updater -server=nfd-master.nfd.svc.cluster.local:443
-surcharge du nom du serveur
L'option -server-name-override spécifie le nom commun (CN) que l'on attend du certificat TLS de nfd-master. Cet indicateur est principalement destiné au développement et au débogage.
Défaut : vide
Exemple :
$ nfd-topology-updater -server-name-override=localhost
-intervalle de sommeil
L'indicateur -sleep-interval précise l'intervalle entre le réexamen de la topologie matérielle des ressources et les mises à jour des ressources personnalisées. Une valeur non positive implique un intervalle de sommeil infini et aucune re-détection n'est effectuée.
Par défaut : 60s
Exemple :
$ nfd-topology-updater -sleep-interval=1h
-version
Imprimer la version et quitter.
-espace de veille
L'option -watch-namespace spécifie l'espace de noms pour s'assurer que l'examen de la topologie matérielle des ressources ne concerne que les modules fonctionnant dans l'espace de noms spécifié. Les modules qui ne sont pas exécutés dans l'espace de noms spécifié ne sont pas pris en compte lors de la comptabilisation des ressources. Cette fonction est particulièrement utile pour les tests et le débogage. Une valeur de * signifie que tous les pods de tous les espaces de noms sont pris en compte lors du processus de comptabilisation.
Par défaut : *
Exemple :
$ nfd-topology-updater -watch-namespace=rte