3.3. Node Feature Discovery Operator の設定
3.3.1. コア
core
セクションには、共通の設定が含まれており、これは特定の機能ソースに固有のものではありません。
core.sleepInterval
core.sleepInterval
は、次に機能検出または再検出するまでの間隔を指定するので、ノードの再ラベル付けの間隔も指定します。正の値以外は、無限のスリープ状態を意味するので、再検出や再ラベル付けは行われません。
この値は、指定されている場合は deprecated --sleep-interval
コマンドラインフラグで上書きされます。
使用例
core:
sleepInterval: 60s 1
デフォルト値は 60s
です。
core.sources
core.sources
は、有効な機能ソースのリストを指定します。特殊な値 all
はすべての機能ソースを有効にします。
この値は、指定されている場合は deprecated-- sources
コマンドラインフラグにより上書きされます。
デフォルト: [all]
使用例
core: sources: - system - custom
core.labelWhiteList
core.labelWhiteList
は、正規表現を指定してラベル名に基づいて機能ラベルをフィルターします。一致しないラベルは公開されません。
正規表現は、ラベルのベース名 ('/' の後に名前の一部) だけを照合します。ラベルの接頭辞または namespace は省略されます。
この値は、指定されている場合は deprecated --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. ソース
sources
セクションには、機能ソース固有の設定パラメーターが含まれます。
sources.cpu.cpuid.attributeBlacklist
このオプションに記述されている cpuid
機能は公開されません。
この値は、指定されている場合は source.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
sources.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]
上記の設定例では、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"]