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 모두에서 동작합니다.
설치, 업그레이드, 제거 및 관련 가이드는 다음을 참고하세요.
- NPU Operator 설치
- NPU Operator 업그레이드
- NPU Operator 제거
- NPU 드라이버 설치
- NPU 드라이버 업그레이드 워크플로우
- 노드별 워크로드 라벨링
- 샌드박스형 워크로드
핵심 컴포넌트¶
오퍼레이터가 배포·관리하는 주요 컴포넌트는 아래와 같습니다.
| 컴포넌트 | 설명 |
|---|---|
| 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 | RBLNClusterPolicy와 RBLNDriver CRD를 동기화하고 위 컴포넌트를 조율합니다. |