3.3. Utilisation de l'opérateur de découverte de caractéristiques de nœuds

L'opérateur NFD (Node Feature Discovery) orchestre toutes les ressources nécessaires à l'exécution de l'ensemble de démons Node-Feature-Discovery en surveillant l'arrivée d'un CR NodeFeatureDiscovery. Sur la base de la CR NodeFeatureDiscovery, l'opérateur crée les composants de l'opérande (BDNF) dans l'espace de noms souhaité. Vous pouvez modifier le CR pour choisir un autre namespace, image, imagePullPolicy, et nfd-worker-conf, entre autres options.

En tant qu'administrateur de cluster, vous pouvez créer une instance NodeFeatureDiscovery à l'aide du CLI d'OpenShift Container Platform ou de la console Web.

3.3.1. Créer une instance de NodeFeatureDiscovery à l'aide de l'interface de programmation (CLI)

En tant qu'administrateur de cluster, vous pouvez créer une instance NodeFeatureDiscovery CR à l'aide de la CLI.

Conditions préalables

  • Un cluster OpenShift Container Platform
  • Installez le CLI OpenShift (oc).
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  • Installer l'opérateur NFD.

Procédure

  1. Créez la ressource personnalisée (CR) NodeFeatureDiscovery suivante, puis enregistrez le fichier YAML dans le fichier NodeFeatureDiscovery.yaml:

    apiVersion: nfd.openshift.io/v1
    kind: NodeFeatureDiscovery
    metadata:
      name: nfd-instance
      namespace: openshift-nfd
    spec:
      instance: "" # instance is empty by default
      topologyupdater: false # False by default
      operand:
        image: registry.redhat.io/openshift4/ose-node-feature-discovery:v4.12
        imagePullPolicy: Always
      workerConfig:
        configData: |
          core:
          #  labelWhiteList:
          #  noPublish: false
            sleepInterval: 60s
          #  sources: [all]
          #  klog:
          #    addDirHeader: false
          #    alsologtostderr: false
          #    logBacktraceAt:
          #    logtostderr: true
          #    skipHeaders: false
          #    stderrthreshold: 2
          #    v: 0
          #    vmodule:
          ##   NOTE: the following options are not dynamically run-time configurable
          ##         and require a nfd-worker restart to take effect after being changed
          #    logDir:
          #    logFile:
          #    logFileMaxSize: 1800
          #    skipLogHeaders: false
          sources:
            cpu:
              cpuid:
          #     NOTE: whitelist has priority over blacklist
                attributeBlacklist:
                  - "BMI1"
                  - "BMI2"
                  - "CLMUL"
                  - "CMOV"
                  - "CX16"
                  - "ERMS"
                  - "F16C"
                  - "HTT"
                  - "LZCNT"
                  - "MMX"
                  - "MMXEXT"
                  - "NX"
                  - "POPCNT"
                  - "RDRAND"
                  - "RDSEED"
                  - "RDTSCP"
                  - "SGX"
                  - "SSE"
                  - "SSE2"
                  - "SSE3"
                  - "SSE4.1"
                  - "SSE4.2"
                  - "SSSE3"
                attributeWhitelist:
            kernel:
              kconfigFile: "/path/to/kconfig"
              configOpts:
                - "NO_HZ"
                - "X86"
                - "DMI"
            pci:
              deviceClassWhitelist:
                - "0200"
                - "03"
                - "12"
              deviceLabelFields:
                - "class"
      customConfig:
        configData: |
              - name: "more.kernel.features"
                matchOn:
                - loadedKMod: ["example_kmod3"]

Pour plus de détails sur la manière de personnaliser les travailleurs NFD, reportez-vous à la référence du fichier de configuration de nfd-worker.

  1. Créez l'instance NodeFeatureDiscovery CR en exécutant la commande suivante :

    $ oc create -f NodeFeatureDiscovery.yaml

Vérification

  • Pour vérifier que l'instance est créée, exécutez :

    $ oc get pods

    Exemple de sortie

    NAME                                      READY   STATUS    RESTARTS   AGE
    nfd-controller-manager-7f86ccfb58-vgr4x   2/2     Running   0          11m
    nfd-master-hcn64                          1/1     Running   0          60s
    nfd-master-lnnxx                          1/1     Running   0          60s
    nfd-master-mp6hr                          1/1     Running   0          60s
    nfd-worker-vgcz9                          1/1     Running   0          60s
    nfd-worker-xqbws                          1/1     Running   0          60s

    Un déploiement réussi affiche un statut Running.

3.3.2. Créer un CR NodeFeatureDiscovery à l'aide de la console web

Procédure

  1. Naviguez jusqu'à la page OperatorsInstalled Operators.
  2. Trouvez Node Feature Discovery et voyez une boîte sous Provided APIs.
  3. Cliquez sur Create instance.
  4. Modifier les valeurs de NodeFeatureDiscovery CR.
  5. Cliquez sur Create.