3.2. Node Feature Discovery Operator 사용


NFD( Node Feature Discovery ) Operator는 NodeFeatureDiscovery CR(사용자 정의 리소스)을 확인하여 Node-Feature-Discovery 데몬 세트를 실행하는 데 필요한 모든 리소스를 오케스트레이션합니다. NodeFeatureDiscovery CR을 기반으로 Operator는 선택한 네임스페이스에 피연산자(NFD) 구성 요소를 생성합니다. CR을 편집하여 다른 옵션 중에서 다른 네임스페이스, 이미지, 이미지 가져오기 정책 및 nfd-worker-conf 구성 맵을 사용할 수 있습니다.

클러스터 관리자는 OpenShift CLI(oc) 또는 웹 콘솔을 사용하여 NodeFeatureDiscovery CR을 생성할 수 있습니다.

참고

버전 4.12부터 NodeFeatureDiscovery CR의 operand.image 필드는 필수입니다. OLM(Operator Lifecycle Manager)을 사용하여 NFD Operator를 배포하는 경우 OLM에서 operand.image 필드를 자동으로 설정합니다. OpenShift Container Platform CLI 또는 OpenShift Container Platform 웹 콘솔을 사용하여 NodeFeatureDiscovery CR을 생성하는 경우 operand.image 필드를 명시적으로 설정해야 합니다.

3.2.1. CLI를 사용하여 NodeFeatureDiscovery CR 생성

클러스터 관리자는 OpenShift CLI(oc)를 사용하여 NodeFeatureDiscovery CR 인스턴스를 생성할 수 있습니다.

참고

spec.operand.image 설정에는 OpenShift Container Platform 릴리스 4.13 이상에서 사용하도록 -rhel9 이미지가 필요합니다.

다음 예제에서는 -rhel9 를 사용하여 올바른 이미지를 가져오는 방법을 보여줍니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • NFD Operator가 설치되어 있어야 합니다.

프로세스

  1. NodeFeatureDiscovery CR을 생성합니다.

    NodeFeatureDiscovery CR의 예

    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-rhel9:v4.16 1
        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"]

    1
    operand.image 필드는 필수입니다.
  2. 다음 명령을 실행하여 NodeFeatureDiscovery CR을 생성합니다.

    $ oc apply -f <filename>

검증

  1. 다음 명령을 실행하여 NodeFeatureDiscovery CR이 생성되었는지 확인합니다.

    $ oc get pods

    출력 예

    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

    성공적인 배포에는 Running 상태가 표시됩니다.

3.2.2. 연결이 끊긴 환경에서 CLI를 사용하여 NodeFeatureDiscovery CR 생성

클러스터 관리자는 OpenShift CLI(oc)를 사용하여 NodeFeatureDiscovery CR 인스턴스를 생성할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • NFD Operator가 설치되어 있어야 합니다.
  • 필요한 이미지가 있는 미러 레지스트리에 액세스할 수 있습니다.
  • skopeo CLI 툴을 설치했습니다.

프로세스

  1. 레지스트리 이미지의 다이제스트를 확인합니다.

    1. 다음 명령을 실행합니다.

      $ skopeo inspect docker://registry.redhat.io/openshift4/ose-node-feature-discovery:<openshift_version>

      명령 예

      $ skopeo inspect docker://registry.redhat.io/openshift4/ose-node-feature-discovery:v4.12

    2. 출력을 검사하여 이미지 다이제스트를 식별합니다.

      출력 예

      {
        ...
        "Digest": "sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
        ...
      }

  2. 다음 명령을 실행하여 skopeo CLI 툴을 사용하여 registry.redhat.io 의 이미지를 미러 레지스트리로 복사합니다.

    skopeo copy docker://registry.redhat.io/openshift4/ose-node-feature-discovery@<image_digest> docker://<mirror_registry>/openshift4/ose-node-feature-discovery@<image_digest>

    명령 예

    skopeo copy docker://registry.redhat.io/openshift4/ose-node-feature-discovery@sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef docker://<your-mirror-registry>/openshift4/ose-node-feature-discovery@sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

  3. NodeFeatureDiscovery CR을 생성합니다.

    NodeFeatureDiscovery CR의 예

    apiVersion: nfd.openshift.io/v1
    kind: NodeFeatureDiscovery
    metadata:
      name: nfd-instance
    spec:
      operand:
        image: <mirror_registry>/openshift4/ose-node-feature-discovery@<image_digest> 1
        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"]

    1
    operand.image 필드는 필수입니다.
  4. 다음 명령을 실행하여 NodeFeatureDiscovery CR을 생성합니다.

    $ oc apply -f <filename>

검증

  1. 다음 명령을 실행하여 NodeFeatureDiscovery CR의 상태를 확인합니다.

    $ oc get nodefeaturediscovery nfd-instance -o yaml
  2. 다음 명령을 실행하여 ImagePullBackOff 오류 없이 포드가 실행 중인지 확인합니다.

    $ oc get pods -n <nfd_namespace>

3.2.3. 웹 콘솔을 사용하여 NodeFeatureDiscovery CR 생성

클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 NodeFeatureDiscovery CR을 생성할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • NFD Operator가 설치되어 있어야 합니다.

프로세스

  1. Operator 설치된 Operator 페이지로 이동합니다.
  2. Node Feature Discovery 섹션에서 제공된 API 에서 Create instance 를 클릭합니다.
  3. NodefeatureatureDiscovery CR의 값을 편집합니다.
  4. 생성을 클릭합니다.
참고

버전 4.12부터 NodeFeatureDiscovery CR의 operand.image 필드는 필수입니다. OLM(Operator Lifecycle Manager)을 사용하여 NFD Operator를 배포하는 경우 OLM에서 operand.image 필드를 자동으로 설정합니다. OpenShift Container Platform CLI 또는 OpenShift Container Platform 웹 콘솔을 사용하여 NodeFeatureDiscovery CR을 생성하는 경우 operand.image 필드를 명시적으로 설정해야 합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.