3.2. Node Feature Discovery Operator 사용
NFD( Node Feature Discovery
) Operator는 NodeFeatureDiscovery CR(사용자 정의 리소스)을 확인하여 Node-Feature-Discovery 데몬 세트를 실행하는 데 필요한 모든 리소스를 오케스트레이션합니다. NodeFeatureDiscovery
CR을 기반으로 Operator는 선택한 네임스페이스에 피연산자(NFD) 구성 요소를 생성합니다. CR을 편집하여 다른 옵션 중에서 다른 네임스페이스, 이미지, 이미지 가져오기 정책 및 nfd-worker-conf
구성 맵을 사용할 수 있습니다.
클러스터 관리자는 OpenShift CLI(oc
) 또는 웹 콘솔을 사용하여 NodeFeatureDiscovery
CR을 생성할 수 있습니다.
3.2.1. CLI를 사용하여 NodeFeatureDiscovery CR 생성
클러스터 관리자는 OpenShift CLI(oc
)를 사용하여 NodeFeatureDiscovery
CR 인스턴스를 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 로그인했습니다. - NFD Operator가 설치되어 있어야 합니다.
절차
NodeFeatureDiscovery
CR을 생성합니다.NodeFeatureDiscovery
CR의 예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"]
다음 명령을 실행하여
NodeFeatureDiscovery
CR을 생성합니다.$ oc apply -f <filename>
검증
다음 명령을 실행하여
NodeFeatureDiscovery
CR이 생성되었는지 확인합니다.$ 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가 설치되어 있어야 합니다.
- 필요한 이미지가 있는 미러 레지스트리에 액세스할 수 있습니다.
-
skopeo
CLI 툴을 설치했습니다.
절차
레지스트리 이미지의 다이제스트를 확인합니다.
다음 명령을 실행합니다.
$ 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", ... }
다음 명령을 실행하여
skopeo
CLI 툴을 사용하여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:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
NodeFeatureDiscovery
CR을 생성합니다.NodeFeatureDiscovery
CR의 예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"]
다음 명령을 실행하여
NodeFeatureDiscovery
CR을 생성합니다.$ oc apply -f <filename>
검증
다음 명령을 실행하여
NodeFeatureDiscovery
CR의 상태를 확인합니다.$ oc get nodefeaturediscovery nfd-instance -o yaml
다음 명령을 실행하여
ImagePullBackOff
오류 없이 포드가 실행 중인지 확인합니다.$ oc get pods -n <nfd_namespace>
3.2.3. 웹 콘솔을 사용하여 NodeFeatureDiscovery CR 생성
클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 NodeFeatureDiscovery
CR을 생성할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
-
cluster-admin
권한이 있는 사용자로 로그인했습니다. - NFD Operator가 설치되어 있어야 합니다.
절차
-
Operator
설치된 Operator 페이지로 이동합니다. - Node Feature Discovery 섹션에서 제공된 API 에서 Create instance 를 클릭합니다.
-
NodefeatureatureDiscovery
CR의 값을 편집합니다. - 생성을 클릭합니다.