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 は、正規表現を指定してラベル名に基づいて機能ラベルをフィルターします。一致しないラベルは公開されません。

正規表現は、ラベルのベース名 ('/' の後に名前の一部) だけを照合します。ラベルの接頭辞または namespace は省略されます。

この値は、指定されている場合は、非推奨の --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. ソース

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.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

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 フィールドのセットです。有効なフィールドは classvendordevicesubsystem_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 フィールドのセットです。有効なフィールドは classvendor、および 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"]