3.3. Node Feature Discovery Operator 설정
3.3.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.noPublish
를 true
로 설정하면 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.skipHeaders
가 true
로 설정된 경우 로그 메시지에서 헤더 접두사를 사용하지 않습니다.
기본값: false
런타임 설정 가능: yes
core.klog.skipLogHeaders
core.klog.skipLogHeaders
가 true
로 설정된 경우 로그 파일을 열 때 헤더를 사용하지 않습니다.
기본값: 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
3.3.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.attributeWhitelist
는 sources.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
sources.pci.deviceClassWhitelist
는 레이블을 게시하는 PCI 장치 클래스 ID 목록입니다. 메인 클래스로만 (예: 03
) 또는 전체 클래스-하위 클래스 조합(예: 0300
)으로 지정할 수 있습니다. 전자는 모든 하위 클래스가 허용됨을 의미합니다. 레이블 형식은 deviceLabelFields
를 사용하여 추가로 구성할 수 있습니다.
기본값: ["03", "0b40", "12"]
사용 예
sources: pci: deviceClassWhitelist: ["0200", "03"]
sources.pci.deviceLabelFields
sources.pci.deviceLabelFields
는 기능 레이블의 이름을 구성할 때 사용할 PCI ID 필드 집합입니다. 유효한 필드는 class
,vendor
,device
,subsystem_vendor
및 subsystem_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
sources.usb.deviceClassWhitelist
는 기능 레이블을 게시하는 USB 장치 클래스 ID 목록입니다. 레이블 형식은 deviceLabelFields
를 사용하여 추가로 구성할 수 있습니다.
기본값: ["0e", "ef", "fe", "ff"]
사용 예
sources: usb: deviceClassWhitelist: ["ef", "ff"]
sources.usb.deviceLabelFields
sources.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
sources.custom
은 사용자별 레이블을 생성하기 위해 사용자 정의 기능 소스에서 처리하는 규칙 목록입니다.
기본값: empty
사용 예
source: custom: - name: "my.custom.feature" matchOn: - loadedKMod: ["e1000e"] - pciId: class: ["0200"] vendor: ["8086"]