Helm 구성 예제¶
구성을 선택해 YAML을 npu-values.yaml로 저장합니다. 각 예제는 새 설치용이며, 생략한 값은 차트 기본값을 사용합니다.
| 배포 구성 | 사용 목적 |
|---|---|
| 드라이버 컨테이너 + Device Plugin | 드라이버 컨테이너로 드라이버를 설치하고 Pod에 NPU 할당 |
| 호스트 드라이버 + Device Plugin | 호스트에 설치한 드라이버 사용 |
| DRA 기반 NPU 할당 | ResourceClaim으로 NPU 할당 |
| KubeVirt VM 패스스루 | Sandbox Device Plugin 또는 DRA로 VM에 NPU 연결 |
| 컨테이너·VM 혼용을 위한 Helm 설정 | 컨테이너·VM 워크로드에 필요한 컴포넌트 활성화 |
| 제품군별 드라이버 버전 | NPU 제품군별로 다른 드라이버 버전 사용 |
| RDS | NPU를 할당받은 컨테이너에 RDS 장치 연결 |
공통 준비¶
| 항목 | 준비할 내용 |
|---|---|
| NFD | 클러스터에 설치 |
drivercred | 드라이버 컨테이너용 이미지 풀 시크릿. 이름이 다르면 driver.imagePullSecrets 변경 |
<...> | 환경에 맞는 값으로 교체 |
| 드라이버 버전 | 대상 제품군·OS·커널에 맞는 이미지 선택. 같은 버전을 쓰는 모든 제품군에 이미지 필요 |
파일 준비 후 Helm 설치를 진행합니다. 기존 설치는 Helm 값 적용에 따라 기존 설정을 유지하며 변경합니다.
드라이버 컨테이너 + Device Plugin¶
호스트 드라이버가 없는 노드에서 드라이버 컨테이너로 드라이버를 설치하고 rebellions.ai/npu를 제공합니다.
| npu-values.yaml | |
|---|---|
<DRIVER_VERSION>에 사용할 버전을 지정합니다. 제품군별 버전이 다르면 제품군별 구성을 사용합니다.
호스트 드라이버 + Device Plugin¶
호스트 드라이버와 rbln-smi가 준비된 노드용입니다. 드라이버 설치·업데이트는 호스트에서 관리합니다.
| npu-values.yaml | |
|---|---|
DRA 기반 NPU 할당¶
Kubernetes 1.34 이상에서 DRA Kubelet Plugin으로 NPU를 할당합니다. 드라이버 컨테이너와 Container Toolkit을 사용합니다.
| npu-values.yaml | |
|---|---|
<DRIVER_VERSION>에 사용할 버전을 지정합니다. DRA Kubelet Plugin은 Device Plugin 및 Sandbox Device Plugin과 각각 동시에 활성화할 수 없습니다.
KubeVirt VM 패스스루¶
IOMMU·VFIO·KubeVirt가 준비된 VM 전용 NPU 노드에서 Sandbox Device Plugin 또는 DRA를 선택해 NPU를 할당합니다. 방식별 요구사항은 사전 준비에서 확인할 수 있습니다. NPU를 사용할 VM 게스트에는 드라이버가 필요합니다.
제품별 Kubernetes 리소스를 VM의 hostDevices에 지정해 NPU를 연결합니다.
ResourceClaim과 vfio-npu.rebellions.ai DeviceClass로 NPU를 요청합니다.
컨테이너·VM 혼용을 위한 Helm 설정¶
컨테이너와 VM 워크로드에 필요한 컴포넌트를 활성화합니다. 기본 워크로드 모드는 container로 설정하고, VM용 노드는 워크로드 레이블로 지정합니다. 노드 지정 절차는 컨테이너·VM용 NPU 노드 분리하기에서 확인할 수 있습니다.
| npu-values.yaml | |
|---|---|
| npu-values.yaml | |
|---|---|
제품군별 드라이버 버전¶
Rebel100™과 ATOM™ 노드에 다른 드라이버 버전을 지정합니다. 두 버전 값을 환경에 맞게 바꿉니다.
driver.deployDefault: false이므로 인스턴스가 선택하지 않은 노드에는 드라이버가 배포되지 않습니다. 드라이버가 필요한 모든 노드를 선택해야 합니다.
RDS¶
Rebel100™ 노드에서 Device Plugin v0.5.0 또는 DRA Kubelet Plugin v0.2.1으로 NPU와 RDS 장치를 컨테이너에 연결합니다.
| 항목 | 요구사항 |
|---|---|
| 드라이버 | 대상 OS·커널에 맞는 RDS 지원 이미지 |
| DRA Kubelet Plugin | v0.2.1 |
| Device Plugin | v0.5.0 |
| Container Toolkit | v0.2.3 이상 |
| Kubernetes(DRA 사용 시) | 1.34 이상 |
NVMe 데이터 삭제
RDS가 선택한 NVMe 장치를 직접 제어합니다. 운영체제나 보존할 데이터가 없는 RDS 전용 NVMe만 지정해야 합니다.
| 값 | 지정할 내용 |
|---|---|
<RDS_DRIVER_VERSION> | RDS 지원 드라이버 버전 |
<RDS_NODE_NAME> | 대상 노드의 metadata.name |
<NVME_PCI_ADDRESS> | NVMe PCI 주소. 예: 0000:08:00.0 |
RDS 설정을 반영해 NPU Operator를 배포한 뒤 RDS 지원 문서에 따라 rebellions.ai/rds.present=true 노드 레이블을 지정합니다.