NVIDIA GPU Operator 용어
GPU Driver CRD (NVIDIA Driver CRD)
개별 노드에 GPU driver type과 버전을 지정할 수 있는 nvidia custom driver, custom resource를 생성할 수 있다.
노드셀렉터를 통해 노드별 os에 따른 드라이버설정 가능
-- Cluster Policy CRD와 NVIDIA Driver CRD 비교
https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-driver-configuration.html
KubeVirt
k8s cluster상 VM환경 생성성하고 관리하게 해주는 기술.
VM과 Container를 위한 개별 클러스터를 구성할 필요 없이 하나의 k8s cluster에서 모두 사용가능하게 해주는 기술
ex) 아래와 같은 노드별 GPU환경을 구동하려고 한다.
node A: container구동
node B: GPU PassThrough방식의 VM사용
node C: vGPU방식의 VM사용
이때 구성요소는
node A:
- NVIDIA Datacenter Driver: GPU Driver설치
- NVIDIA Container toolkit: CRI에서 GPU 활용하게 해준다.
- NVIDIA k8s Device Plugin: GPU자원을 발견
- NVIDIA DCGM Exporter: GPU 모니터링
node B:
- VFIO Manger : vfio-pci 로딩 및 GPU바인딩
- Sandbox Device Plugin: GPU자원을 발견
node C:
- NVIDIA vGPU Manager: vGPU driver설치
- NVIDIA vGPU Device Manager: vGPU 생성할당 위해 host에 설치
- Sandbox Device Plugin: vGPU device 발견
위 와같은 구성요소를 설치하여 각 k8s의 worker node는 라벨링을 통해 용도를 구분하여 전용 workloads를 처리할 수있다.
Kata Containers
docker container와 다르게 kernel과 유저공간을 모두 격리한다.
kata runtime은 QEMU와 같은 hypervisor를 사용하여 vm을 제공하고, 그 위에서 kata container를 실행한다.
NVIDIA는 Confidentail Container를 통해 KATA runtime과 QEMU를 설치하고, kata container를 지원한다.
Confidential Container
computing측면에서 GPU workloads와 코드의 보안강화/격리를 위한 컨테이너기술
RDMA
별도로 다룸
GDS(GPU Direct Storage)
별도로 다룸
NFD(Node Feature Discovery)
NFD의 구성 요소
- nfd-master:
NFD의 중앙 구성 요소로, 각 노드에서 수집된 기능 정보를 수신하고 이를 기반으로 노드에 라벨을 적용 - nfd-worker:
각 노드에서 실행되며, 하드웨어 및 소프트웨어 기능을 검색하여 이를 nfd-master에 보고
NFD의 작동 방식
- nfd-worker 실행: NFD 데몬셋이 각 노드에서 nfd-worker를 실행. nfd-worker는 노드의 하드웨어 및 소프트웨어 상태를 검사
- 기능 검색: nfd-worker는 노드의 다양한 기능을 검색. 여기에는 GPU, CPU, 메모리, 네트워크 인터페이스, 커널 모듈 등이 포함.
- 라벨 생성: 발견된 기능 정보를 기반으로 라벨을 생성. 예를 들어, GPU가 감지되면 nvidia.com/gpu.present=true와 같은 라벨이 생성된다.
- nfd-master 보고: nfd-worker는 검색된 기능 정보를 nfd-master에 보고.
- 노드 라벨링: nfd-master는 수신된 정보를 바탕으로 노드에 적절한 라벨을 추가.
GFD(GPU Feature Discovery)
GFD는 노드에 GPU의 세부정보(gpu 모델, 메모리크기, cuda버전, 드라이버 버전..)를 수집하여 k8s노드에 레이블을 추가해준다.
NFD(Node Feature Discovery) 마스터에 수집정보를 알린다.
SR-IOV(Single Root I/O Virtualization)
단일 PCI Express(PCIe) endpoint가 여러 개별 디바이스로 사용될 수 있게 해주는기술
하나의 PCIe장치를 여러개의 가상PCIe장치로 보이게 만드는 기술
- NVIDIA Ampere아키텍쳐에서 vGPU활용위해 필수
The virtualization and IOMMU extensions (Intel VT-d or AMD IOMMU) are enabled in the BIOS.
The host is booted with intel_iommu=on or amd_iommu=on on the kernel command line.
If planning to use NVIDIA vGPU, SR-IOV must be enabled in the BIOS if your GPUs are based on the NVIDIA Ampere architecture or later. Refer to the NVIDIA vGPU Documentation to ensure you have met all of the prerequisites for using NVIDIA vGPU.
NVIDIA Driver Manager for k8s (k8s-driver-manager)
gpu operator의 구성요소로 vfio manager, vGPU manager 등에서 이미지로 쓰임. 아래역할을 수행하는 중요한 component
- Check for already installed kernel modules.
- Perform Drain on the node ignoring Daemonset pods.
- Evict GPU Operator components like Device-Plugin, GPU Feature Discovery, DCGM Exporter etc.
- Unload kernel-modules.
- Unmount Driver root filesystem mounted on the host previously under /run/nvidia/driver.
- Uncordon the node.