4.4. Node Feature Discovery Operator 설정

4.4.1. 코어

core 섹션에는 특정 기능 소스와 관련이 없는 일반적인 구성 설정이 포함되어 있습니다.

core.sleepInterval

core.sleepInterval은 기능 검색 또는 재검색의 연속 통과 간격과 노드 레이블 재지정 간격을 지정합니다. 양수가 아닌 값은 무한 절전 상태를 의미합니다. 재검색되거나 레이블이 다시 지정되지 않습니다.

이 값은 지정된 경우 더 이상 사용되지 않는 --sleep-interval 명령줄 플래그로 재정의됩니다.

사용 예

core:
  sleepInterval: 60s 1

기본값은 60s입니다.

core.sources

core.sources는 활성화된 기능 소스 목록을 지정합니다. 특수한 값 all은 모든 기능 소스를 활성화합니다.

이 값은 지정된 경우 더 이상 사용되지 않는 --sources 명령줄 플래그로 재정의됩니다.

기본값: [all]

사용 예

core:
  sources:
    - system
    - custom

core.labelWhiteList

core.labelWhiteList는 레이블 이름을 기반으로 기능 레이블을 필터링하기 위한 정규식을 지정합니다. 일치하지 않는 레이블은 게시되지 않습니다.

정규 표현식은 레이블의 기반 이름 부분인 '/' 뒤에 있는 이름의 부분과만 일치합니다. 레이블 접두사 또는 네임스페이스가 생략됩니다.

이 값은 지정된 경우 더 이상 사용되지 않는 --label-whitelist 명령줄 플래그로 재정의됩니다.

기본값: null

사용 예

core:
  labelWhiteList: '^cpu-cpuid'

core.noPublish

core.noPublishtrue로 설정하면 nfd-master와의 모든 통신이 비활성화됩니다. 이것은 실질적으로는 드라이런 플래그입니다. nfd-worker는 정상적으로 기능 감지를 실행하지만 레이블 요청은 nfd-master로 전송되지 않습니다.

이 값은 지정된 경우 --no-publish 명령줄 플래그로 재정의됩니다.

예제:

사용 예

core:
  noPublish: true 1

기본값은 false입니다.

core.klog

다음 옵션은 대부분 런타임에 동적으로 조정할 수 있는 로거 구성을 지정합니다.

로거 옵션은 명령줄 플래그를 사용하여 지정할 수도 있으며, 이러한 옵션은 해당 구성 파일 옵션보다 우선합니다.

core.klog.addDirHeader

true로 설정하면core.klog.addDirHeader에서 파일 디렉터리를 로그 메시지의 헤더에 추가합니다.

기본값: false

런타임 설정 가능: yes

core.klog.alsologtostderr

표준 오류 및 파일에 기록합니다.

기본값: false

런타임 설정 가능: yes

core.klog.logBacktraceAt

로깅이 file:N 행에 도달하면 스택 추적을 출력합니다.

기본값: empty

런타임 설정 가능: yes

core.klog.logDir

비어 있지 않은 경우 이 디렉터리에 로그 파일을 작성합니다.

기본값: empty

런타임 설정 가능: no

core.klog.logFile

비어 있지 않은 경우 이 로그 파일을 사용합니다.

기본값: empty

런타임 설정 가능: no

core.klog.logFileMaxSize

core.klog.logFileMaxSize는 로그 파일의 최대 크기를 정의합니다. 단위는 메가바이트입니다. 값이 0인 경우 최대 파일 크기는 무제한입니다.

기본값: 1800

런타임 설정 가능: no

core.klog.logtostderr

파일 대신 표준 오류에 기록합니다.

기본값: true

런타임 설정 가능: yes

core.klog.skipHeaders

core.klog.skipHeaderstrue로 설정된 경우 로그 메시지에서 헤더 접두사를 사용하지 않습니다.

기본값: false

런타임 설정 가능: yes

core.klog.skipLogHeaders

core.klog.skipLogHeaderstrue로 설정된 경우 로그 파일을 열 때 헤더를 사용하지 않습니다.

기본값: false

런타임 설정 가능: no

core.klog.stderrthreshold

임계값 이상의 로그는 stderr에 있습니다.

기본값: 2

런타임 설정 가능: yes

core.klog.v

core.klog.v는 로그 수준 세부 정보 표시의 수치입니다.

기본값: 0

런타임 설정 가능: yes

core.klog.vmodule

core.klog.vmodule은 파일 필터링된 로깅의 쉼표로 구분된 pattern=N 설정 목록입니다.

기본값: empty

런타임 설정 가능: yes

4.4.2. 소스

source 섹션에는 기능 소스 관련 구성 매개변수가 포함되어 있습니다.

sources.cpu.cpuid.attributeBlacklist

이 옵션에 나열된 cpuid 기능만을 공개합니다.

이 값은 sources.cpu.cpuid.attributeWhitelist로에 의해 재정의됩니다.

기본값: [BMI1, BMI2, CLMUL, CMOV, CX16, ERMS, F16C, HTT, LZCNT, MMX, MMXEXT, NX, POPCNT, RDRAND, RDSEED, RDTSCP, SGX, SGXLC, SSE, SSE2, SSE3, SSE4.1, SSE4.2, SSSE3]

사용 예

sources:
  cpu:
    cpuid:
      attributeBlacklist: [MMX, MMXEXT]

sources.cpu.cpuid.attributeWhitelist

이 옵션에 나열된 cpuid 기능만 게시합니다.

sources.cpu.cpuid.attributeWhitelistsources.cpu.cpuid.attributeBlacklist보다 우선합니다.

기본값: empty

사용 예

sources:
  cpu:
    cpuid:
      attributeWhitelist: [AVX512BW, AVX512CD, AVX512DQ, AVX512F, AVX512VL]

sources.kernel.kconfigFile

sources.kernel.kconfigFile은 커널 구성 파일의 경로입니다. 비어 있는 경우 NFD는 일반적인 표준 위치에서 검색을 실행합니다.

기본값: empty

사용 예

sources:
  kernel:
    kconfigFile: "/path/to/kconfig"

sources.kernel.configOpts

Source.kernel.configOpts는 기능 레이블로 게시하는 커널 구성 옵션을 나타냅니다.

기본값: [NO_HZ, NO_HZ_IDLE, NO_HZ_FULL, PREEMPT]

사용 예

sources:
  kernel:
    configOpts: [NO_HZ, X86, DMI]

sources.pci.deviceClassWhitelist

source.pci.deviceClassWhitelist 는 레이블을 게시할 PCI 장치 클래스 ID 목록입니다. 메인 클래스로만 (예: 03) 또는 전체 클래스-하위 클래스 조합(예: 0300)으로 지정할 수 있습니다. 전자는 모든 하위 클래스가 허용됨을 의미합니다. 레이블 형식은 deviceLabelFields를 사용하여 추가로 구성할 수 있습니다.

기본값: ["03", "0b40", "12"]

사용 예

sources:
  pci:
    deviceClassWhitelist: ["0200", "03"]

sources.pci.deviceLabelFields

source.pci.deviceLabelFields 는 기능 레이블의 이름을 구성할 때 사용할 PCI ID 필드의 집합입니다. 유효한 필드는 class,vendor,device,subsystem_vendorsubsystem_device입니다.

기본값: [class, vendor]

사용 예

sources:
  pci:
    deviceLabelFields: [class, vendor, device]

위의 설정 예제에서 NFD는 feature.node.kubernetes.io/pci-<class-id>_<vendor-id>_<device-id>.present=true와 같은 레이블을 게시합니다.

sources.usb.deviceClassWhitelist

source.usb.deviceClassWhitelist 는 기능 레이블을 게시할 USB 장치 클래스 ID 목록입니다. 레이블 형식은 deviceLabelFields를 사용하여 추가로 구성할 수 있습니다.

기본값: ["0e", "ef", "fe", "ff"]

사용 예

sources:
  usb:
    deviceClassWhitelist: ["ef", "ff"]

sources.usb.deviceLabelFields

source.usb.deviceLabelFields 는 기능 레이블의 이름을 구성할 USB ID 필드의 집합입니다. 유효한 필드는 class,vendor, device입니다.

기본값: [class, vendor, device]

사용 예

sources:
  pci:
    deviceLabelFields: [class, vendor]

위의 config 예제에서 NFD는 feature.node.kubernetes.io/usb-<class-id>_<vendor-id>.present=true와 같은 레이블을 게시합니다.

sources.custom

source.custom 은 사용자별 레이블을 생성하기 위해 사용자 지정 기능 소스에서 처리할 규칙 목록입니다.

기본값: empty

사용 예

source:
  custom:
  - name: "my.custom.feature"
    matchOn:
    - loadedKMod: ["e1000e"]
    - pciId:
        class: ["0200"]
        vendor: ["8086"]