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 を作成できます。
3.2.1. CLI を使用した NodeFeatureDiscovery CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift CLI (oc) を使用して NodeFeatureDiscovery CR インスタンスを作成できます。
前提条件
- 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:v4.12 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"]次のコマンドを実行して、
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> 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"]次のコマンドを実行して、
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 をクリックします。