RBLN NPU Operator 설치¶
Helm으로 RBLN NPU Operator를 설치합니다. OpenShift에서 OLM으로 설치하는 방법은 OpenShift 설치에서 확인할 수 있습니다. 설치 후 Pod를 실행하는 과정은 NPU Pod 실행하기에서 다룹니다.
사전 요구사항¶
- 지원 버전의 Kubernetes 클러스터와 NPU 워커 노드
- Node Feature Discovery(NFD)
- 노드의 NPU 제품군·OS·커널에 맞는 드라이버 이미지
- 드라이버·RSMD 이미지를 받을 수 있는 RBLN Portal 계정
이미지 풀 시크릿 생성¶
rbln-system 네임스페이스를 만들고 RBLN Portal 계정을 drivercred 이미지 풀 시크릿에 저장합니다. 드라이버와 RSMD 모두 이 시크릿을 사용합니다.
시크릿 이름이 my-registry-secret이면 아래에서 작성할 npu-values.yaml에 다음 이미지 풀 시크릿 설정을 추가합니다.
설치 값 설정¶
드라이버 컨테이너와 Device Plugin을 사용하는 기본 구성입니다. 기본 Helm 설정값을 재정의할 npu-values.yaml 파일로 저장합니다.
| npu-values.yaml | |
|---|---|
DRA 구성은 NPU DRA Driver 문서에서 확인할 수 있습니다.
Helm 설치¶
차트 버전을 지정해 설치합니다.
설치 확인¶
Helm 설치 후 리소스 상태를 확인합니다. 아래는 정상 상태의 출력 예시로, 이름과 노드 수는 환경에 따라 다릅니다.
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblndriver --all --timeout=600s
rblndriver.rebellions.ai/rbln-driver-rebel100 condition met
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblnclusterpolicy/rbln-cluster-policy --timeout=600s
rblnclusterpolicy.rebellions.ai/rbln-cluster-policy condition met
$ kubectl get rblnclusterpolicy rbln-cluster-policy \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state'
NAME STATE
rbln-cluster-policy ready
$ kubectl get rblndriver \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state,READY:.status.readyNodes,DESIRED:.status.desiredNodes'
NAME STATE READY DESIRED
rbln-driver-rebel100 ready 1 1
Device Plugin 구성에서는 노드의 NPU 리소스도 확인합니다.
$ kubectl get nodes -l rebellions.ai/npu.present=true \
-o 'custom-columns=NAME:.metadata.name,FAMILY:.metadata.labels.rebellions\.ai/npu\.family,PRODUCT:.metadata.labels.rebellions\.ai/npu\.product,ALLOCATABLE:.status.allocatable.rebellions\.ai/npu'
NAME FAMILY PRODUCT ALLOCATABLE
node-rebel100 rebel100 RBLN-CR13 1
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblndriver --all --timeout=600s
rblndriver.rebellions.ai/rbln-driver-atom condition met
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblnclusterpolicy/rbln-cluster-policy --timeout=600s
rblnclusterpolicy.rebellions.ai/rbln-cluster-policy condition met
$ kubectl get rblnclusterpolicy rbln-cluster-policy \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state'
NAME STATE
rbln-cluster-policy ready
$ kubectl get rblndriver \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state,READY:.status.readyNodes,DESIRED:.status.desiredNodes'
NAME STATE READY DESIRED
rbln-driver-atom ready 1 1
Device Plugin 구성에서는 노드의 NPU 리소스도 확인합니다.
$ kubectl get nodes -l rebellions.ai/npu.present=true \
-o 'custom-columns=NAME:.metadata.name,FAMILY:.metadata.labels.rebellions\.ai/npu\.family,PRODUCT:.metadata.labels.rebellions\.ai/npu\.product,ALLOCATABLE:.status.allocatable.rebellions\.ai/npu'
NAME FAMILY PRODUCT ALLOCATABLE
node-atom atom RBLN-CA25 16