3.6. NFD 토폴로지 업데이트 프로그램 사용
NFD(Node Feature Discovery) Topology Updater는 작업자 노드에서 할당된 리소스를 검사하는 데몬입니다. 이 노드는 영역별로 새 Pod에 할당할 수 있는 리소스를 차지하며, 여기서 영역이 NUMA(Non-Uniform Memory Access) 노드일 수 있습니다. NFD Topology Updater는 정보를 nfd-master에 전달하여 클러스터의 모든 작업자 노드에 해당하는 NodeResourceTopology
CR(사용자 정의 리소스)을 생성합니다. NFD 토폴로지 업데이트 관리자의 하나의 인스턴스는 클러스터의 각 노드에서 실행됩니다.
NFD에서 토폴로지 업데이트 관리자 작업자를 활성화하려면 Node Feature Discovery Operator를 사용하는 섹션에 설명된 대로 NodeFeatureDiscovery
CR에서 topologyupdater
변수를 true
로 설정합니다.
3.6.1. NodeResourceTopology CR
NFD Topology Updater를 사용하여 실행하는 경우 NFD는 다음과 같은 노드 리소스 하드웨어 토폴로지에 해당하는 사용자 정의 리소스 인스턴스를 생성합니다.
apiVersion: topology.node.k8s.io/v1alpha1 kind: NodeResourceTopology metadata: name: node1 topologyPolicies: ["SingleNUMANodeContainerLevel"] zones: - name: node-0 type: Node resources: - name: cpu capacity: 20 allocatable: 16 available: 10 - name: vendor/nic1 capacity: 3 allocatable: 3 available: 3 - name: node-1 type: Node resources: - name: cpu capacity: 30 allocatable: 30 available: 15 - name: vendor/nic2 capacity: 6 allocatable: 6 available: 6 - name: node-2 type: Node resources: - name: cpu capacity: 30 allocatable: 30 available: 15 - name: vendor/nic1 capacity: 3 allocatable: 3 available: 3
3.6.2. NFD Topology Updater 명령줄 플래그
사용 가능한 명령줄 플래그를 보려면 nfd-topology-updater -help
명령을 실행합니다. 예를 들어 podman 컨테이너에서 다음 명령을 실행합니다.
$ podman run gcr.io/k8s-staging-nfd/node-feature-discovery:master nfd-topology-updater -help
-ca-file
-ca-file
플래그는 NFD Topology Updater의 상호 TLS 인증을 제어하는 -cert-file
및 '-key-file'flags와 함께 세 개의 플래그 중 하나입니다. 이 플래그는 nfd-master의 진위 여부를 확인하는 데 사용되는 TLS 루트 인증서를 지정합니다.
기본값: empty
-ca-file
플래그는 -cert-file
및 -key-file
플래그와 함께 지정해야 합니다.
예제
$ nfd-topology-updater -ca-file=/opt/nfd/ca.crt -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key
-cert-file
-cert-file
플래그는 NFD Topology Updater에서 상호 TLS 인증을 제어하는 -ca-file
및 -key-file 플래그
와 함께 세 개의 플래그 중 하나입니다. 이 플래그는 발신 요청을 인증하기 위해 제공되는 TLS 인증서를 지정합니다.
기본값: empty
cert-file
플래그는 -ca-file
및 -key-file
플래그와 함께 지정해야 합니다.
예제
$ nfd-topology-updater -cert-file=/opt/nfd/updater.crt -key-file=/opt/nfd/updater.key -ca-file=/opt/nfd/ca.crt
-h, -help
사용법을 출력하고 종료합니다.
-key-file
-key-file
플래그는 NFD Topology Updater의 상호 TLS 인증을 제어하는 -ca-file
및 -cert-file
플래그와 함께 세 개의 플래그 중 하나입니다. 이 플래그는 발신 요청을 인증하는 데 사용되는 지정된 인증서 파일 또는 -cert-file
에 해당하는 개인 키를 지정합니다.
기본값: empty
key-file
플래그는 -ca-file
및 -cert-file
플래그와 함께 지정해야 합니다.
예제
$ nfd-topology-updater -key-file=/opt/nfd/updater.key -cert-file=/opt/nfd/updater.crt -ca-file=/opt/nfd/ca.crt
-kubelet-config-file
-kubelet-config-file
은 Kubelet의 구성 파일의 경로를 지정합니다.
기본값: /host-var/lib/kubelet/config.yaml
예제
$ nfd-topology-updater -kubelet-config-file=/var/lib/kubelet/config.yaml
-no-publish
-no-publish
플래그는 nfd-master와의 모든 통신을 비활성화하여 nfd-topology-updater에 대한 시험 실행 플래그로 설정합니다. NFD Topology Updater는 리소스 하드웨어 토폴로지 탐지를 정상적으로 실행하지만 CR 요청은 nfd-master로 전송되지 않습니다.
기본값: false
예제
$ nfd-topology-updater -no-publish
3.6.2.1. -oneshot
-oneshot
플래그를 사용하면 리소스 하드웨어 토폴로지 탐지를 한 번 통과한 후 NFD Topology Updater가 종료됩니다.
기본값: false
예제
$ nfd-topology-updater -oneshot -no-publish
-podresources-socket
-podresources-socket
플래그는 kubelet이 gRPC 서비스를 내보내는 Unix 소켓의 경로를 지정하여 사용 중인 CPU 및 장치를 검색하고 해당 소켓에 대한 메타데이터를 제공합니다.
기본값: /host-var/liblib/kubelet/pod-resources/kubelet.sock
예제
$ nfd-topology-updater -podresources-socket=/var/lib/kubelet/pod-resources/kubelet.sock
-server
-server
플래그는 연결할 nfd-master 끝점의 주소를 지정합니다.
기본값: localhost:8080
예제
$ nfd-topology-updater -server=nfd-master.nfd.svc.cluster.local:443
-server-name-override
-server-name-override
플래그는 nfd-master TLS 인증서에서 기대할 수 있는 CN(일반 이름)을 지정합니다. 이 플래그는 대부분 개발 및 디버깅용으로 사용됩니다.
기본값: empty
예제
$ nfd-topology-updater -server-name-override=localhost
-sleep-interval
-sleep-interval
플래그는 리소스 하드웨어 토폴로지 재시험 및 사용자 정의 리소스 업데이트 사이의 간격을 지정합니다. 양수가 아닌 값은 무한 절전 간격을 의미하며 재검색이 수행되지 않습니다.
기본값: 60s
예제
$ nfd-topology-updater -sleep-interval=1h
-version
버전을 출력하고 종료합니다.
-watch-namespace
-watch-namespace
플래그는 지정된 네임스페이스에서 실행되는 Pod에 대해서만 리소스 하드웨어 토폴로지 검사를 수행하도록 네임스페이스를 지정합니다. 지정된 네임스페이스에서 실행되지 않는 Pod는 리소스 계정 중에 고려되지 않습니다. 이는 테스트 및 디버깅 목적에 특히 유용합니다. *
값은 회계 프로세스 중에 모든 네임스페이스의 모든 Pod를 고려합니다.
기본값: *
예제
$ nfd-topology-updater -watch-namespace=rte