3.2. Node Feature Discovery Operator の使用
Node Feature Discovery (NFD) Operator は、NodeFeatureDiscovery カスタムリソース (CR) を監視して Node-Feature-Discovery デーモンセットの実行に必要な全リソースをオーケストレーションします。NodeFeatureDiscovery CR に基づいて、Operator は選択された namespace にオペランド (NFD) コンポーネントを作成します。CR を編集して、別の namespace、イメージ、イメージプルポリシー、nfd-worker-conf config map などのオプションを使用できます。
クラスター管理者は、OpenShift CLI (oc) または Web コンソールを使用して NodeFeatureDiscovery CR を作成できます。
バージョン 4.12 以降、NodeFeatureDiscovery CR の operand.image フィールドが必須になりました。{olm-first} を使用して NFD Operator をデプロイすると、OLM は operand.image フィールドを自動的に設定します。OpenShift Container Platform CLI または OpenShift Container Platform Web コンソールを使用して 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 をインストールしました。
手順
NodeFeatureDiscoveryCR を作成します。NodeFeatureDiscoveryCR の例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.141 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フィールドは必須です。
次のコマンドを実行して、
NodeFeatureDiscoveryCR を作成します。$ oc apply -f <filename>
検証
次のコマンドを実行して、
NodeFeatureDiscoveryCR が作成されたことを確認します。$ 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 をインストールしました。
- 必要なイメージを含むミラーレジストリーにアクセスできる。
-
skopeoCLI ツールをインストールしている。
手順
レジストリーイメージのダイジェストを決定します。
以下のコマンドを実行します。
$ 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出力を調べてイメージダイジェストを識別します。
出力例
{ ... "Digest": "sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", ... }
次のコマンドを実行して、
skopeoCLI ツールを使用して、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:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefNodeFeatureDiscoveryCR を作成します。NodeFeatureDiscoveryCR の例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フィールドは必須です。
次のコマンドを実行して、
NodeFeatureDiscoveryCR を作成します。$ oc apply -f <filename>
検証
次のコマンドを実行して、
NodeFeatureDiscoveryCR のステータスを確認します。$ oc get nodefeaturediscovery nfd-instance -o yaml次のコマンドを実行して、Pod が
ImagePullBackOffエラーなしで実行していることを確認します。$ oc get pods -n <nfd_namespace>
3.2.3. Web コンソールを使用した NodeFeatureDiscovery CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift Container Platform Web コンソールを使用して NodeFeatureDiscovery CR を作成できます。
前提条件
- OpenShift Container Platform クラスターにアクセスできる。
-
cluster-admin権限を持つユーザーとしてログインしている。 - NFD Operator をインストールしました。
手順
-
Operators
Installed Operators ページに移動します。 - Node Feature Discovery セクションの Provided APIs で、Create instance をクリックします。
-
NodeFeatureDiscoveryCR の値を編集します。 - Create をクリックします。
バージョン 4.12 以降、NodeFeatureDiscovery CR の operand.image フィールドが必須になりました。{olm-first} を使用して NFD Operator をデプロイすると、OLM は operand.image フィールドを自動的に設定します。OpenShift Container Platform CLI または OpenShift Container Platform Web コンソールを使用して NodeFeatureDiscovery CR を作成する場合は、operand.image フィールドを明示的に設定する必要があります。