RBLN NPU Operator로 샌드박스형 워크로드 구성¶
개요¶
RBLN NPU Operator는 VFIO를 통해 NPU를 게스트 VM에 직접 제공하여 가상화된 AI 워크로드를 구동할 수 있습니다. 이 모드에서 오퍼레이터는 다음을 수행합니다.
-
VFIO 드라이버로 장치를 바인딩
vfio-managerDaemonSet이 ConfigMap에 포함된vfio-manage.sh스크립트를 실행하여 Rebellions PCI 장치를 기본 드라이버에서 분리하고vfio-pci로 재바인딩해 안전한 패스스루를 제공합니다. -
VFIO 기반 리소스 공표
sandbox-device-pluginDaemonSet이 VFIO로 관리되는 NPU를 검사하고rebellions.ai/ATOM_CA22_PT,rebellions.ai/ATOM_CA25_PT와 같은 리소스를 광고합니다. kubernetes 디바이스 플러그인을 통해 리소스를 요청하는 모든 워크로드(예: KubeVirt 포함)는 해당 리소스를 사용할 수 있습니다. -
클러스터 라벨 일관성 유지
Node Feature Discovery(NFD)가feature.node.kubernetes.io/pci-1eff.present=true라벨로 하드웨어를 보고하면, 오퍼레이터가 해당 노드에rebellions.ai/npu.present=true등을 붙여 VFIO 패스스루가 가능한 노드만 샌드박스 컴포넌트를 실행하도록 합니다.
해당 컨트롤러들이 동기화된 후에는 각 hostDevices 절에 참조된 rebellions.ai/* 리소스 이름을 통해 NPU가 KubeVirt VirtualMachine 객체에 노출됩니다.
사전 요구 사항¶
- Kubernetes 1.19+ 클러스터
- RBLN NPU(CA12/CA22/CA25)가 장착된 워커 노드
- BIOS에서 IOMMU 활성화(
intel_iommu=on또는amd_iommu=on) 및 VFIO 커널 모듈(vfio,vfio_pci,vfio_iommu_type1) 로드 - VM 스케줄이 가능한 상태의 KubeVirt Operator
- Node Feature Discovery(NFD) — Helm 차트에서 함께 배포 가능
샌드박스형 워크로드를 위한 Helm 배포¶
-
Helm 설치(필요 시)
-
Rebellions 차트 리포지토리 추가
-
샌드박스 워크로드 프로필을 구성
차트에는 sample-values-SandboxWorkload.yaml 예제가 포함되어 있으며, VFIO Manager·Sandbox Device Plugin을 활성화하고 적절한 리소스 이름을 지정해 둡니다.기본
values.yaml을 복사해 수동으로 조정할 수도 있습니다. -sandboxDevicePlugin.enabled=true을 설정 -vfioManager.enabled=true을 설정 -sandboxDevicePlugin.resourceList[]에 카드별 VFIO 리소스 이름을 맞춤 설정 - NFD가 없으면nfd.enabled=true로 설정 -
샌드박스 프로파일로 설치
KubeVirt에서 VFIO 리소스 사용¶
Note
VM에 장치를 연결하기 전에 KubeVirt의 HostDevices 기능 게이트를 활성화하고 각 Rebellions PCI 리소스를 permittedHostDevices.pciHostDevices에 등록하세요:
sandbox-device-plugin이 공표한 리소스를 참조하는 VirtualMachine 매니페스트를 생성합니다.
팁¶
- 요청한 각 단위는 VFIO에 바인딩된 NPU 기능 한 개에 해당합니다.
- 여러 장치를 요구하려면
requests와limits값을 늘리고hostDevices항목을rbln1,rbln2처럼 추가하세요. - 하나의 Kubernetes 클러스터에 여러 종류의 RBLN 장치가 공존한다면 워크로드가 필요한 모델을 정확히 요청할 수 있도록 sandboxDevicePlugin.resourceList에서 장치별로 서로 다른 리소스 이름(예:
rebellions.ai/ATOM_CA22_PT,rebellions.ai/ATOM_CA25_PT)을 정의하세요.