콘텐츠로 이동

RBLN NPU Operator

rbln-npu-operator는 Kubernetes 및 OpenShift 클러스터에서 RBLN NPU 제품군을 사용하는 데 필요한 Rebellions 소프트웨어 컴포넌트를 배포하고 관리합니다. 클러스터 전체에 적용되는 단일 RBLNClusterPolicy 커스텀 리소스가 전체 워크플로우를 제어하며, RBLNClusterPolicy 커스텀 타입의 리소스를 생성하면 오퍼레이터가 다음 작업을 자동으로 수행합니다.

  • Node Feature Discovery(NFD)를 통해 하드웨어를 탐지하고 노드에 라벨을 부여합니다.
  • 컨테이너와 VM 패스스루라는 두 가지 워크로드 모드에서 디바이스를 노출합니다.
  • Driver Manager(RBLNDriver 커스텀 리소스로 동작)를 통해 NPU 드라이버를 설치하고 유지합니다.
  • Kubernetes 환경에서 NPU를 사용하는 데 필요한 컴포넌트를 배포하고 관리합니다.
  • RBAC/SCC를 자동으로 구성하여 OpenShift와 표준 Kubernetes 모두에서 동작합니다.

설치, 업그레이드, 제거 및 관련 가이드는 다음을 참고하세요.

핵심 컴포넌트

오퍼레이터가 배포·관리하는 주요 컴포넌트는 아래와 같습니다.

컴포넌트 설명
Device Plugin rebellions.ai/npu 등 NPU 리소스를 노출하여 Pod가 resources.limits로 디바이스를 요청할 수 있게 합니다.
NPU DRA Driver Kubernetes Dynamic Resource Allocation(DeviceClass / ResourceSlice / ResourceClaim)을 통해 NPU를 할당합니다. Device Plugin과 동시에 활성화할 수 없습니다.
Sandbox Device Plugin VM 패스스루를 위해 카드 단위 VFIO 리소스(예: rebellions.ai/ATOM_PT)를 노출합니다. KubeVirt 환경을 대상으로 설계되었습니다.
VFIO Manager Sandbox Device Plugin이 사용할 수 있도록 RBLN PCI 함수를 호스트의 vfio-pci 드라이버에 바인딩하거나 바인딩을 해제합니다.
Driver Manager RBLNDriver 커스텀 리소스에 따라 각 노드의 커널 드라이버, UMD 라이브러리, rbln-smi를 동기화합니다.
RBLN Daemon 각 노드에서 NPU 워크로드가 사용하는 호스트 서비스로 실행됩니다(기본 hostPort 50051). 기본값은 비활성화이며 rblnDaemon.enabled=true로 활성화합니다.
NPU Feature Discovery RBLN PCI 디바이스(벤더 1eff)를 탐지하여 rebellions.ai/npu.present, rebellions.ai/npu.count, rebellions.ai/npu.product 같은 속성을 노드 라벨로 부여합니다.
Container Toolkit CDI 사양을 생성하고 컨테이너 런타임을 구성해 Device Plugin과 워크로드가 CDI 기반 디바이스 주입을 사용할 수 있도록 합니다.
Metrics Exporter NPU 텔레메트리(활용률, 온도, DRAM, 전력)를 Prometheus 형식으로 내보냅니다.
Operator Validator 각 노드에서 드라이버와 Container Toolkit의 준비 상태를 확인하고, 다른 컴포넌트가 의존하는 준비 상태 파일을 hostPath로 기록합니다.
Operator Manager RBLNClusterPolicyRBLNDriver CRD를 동기화하고 위 컴포넌트를 조율합니다.