OpenShift용 RBLN NPU Operator 설치¶
OLM으로 NPU Operator를 설치하고 RBLNClusterPolicy와 RBLNDriver를 생성합니다. 이 예제는 Device Plugin을 사용합니다. 워크로드 실행 방법은 NPU Pod 튜토리얼에서 다룹니다.
사전 요구사항¶
- 지원 버전에 포함된 OpenShift Container Platform 클러스터
- RBLN NPU가 장착된 워커 노드 하나 이상
- Node Feature Discovery(NFD) Operator 설치
- 드라이버와 RSMD 이미지에 접근할 수 있는 RBLN Portal 계정
RBLN NPU 감지 확인¶
Rebellions NPU의 PCI 벤더 ID는 1eff입니다. NFD 설정에 따라 레이블에 PCI 클래스가 포함될 수 있으므로 두 형식을 조회합니다.
위 명령 중 하나에서 NPU가 장착된 워커 노드가 조회되면 정상입니다. 아무 노드도 조회되지 않으면 NFD가 정상 동작하는지, 호스트에서 NPU가 감지되는지 확인합니다.
커널 부트 파라미터 설정¶
대상 하드웨어에 맞는 커널 파라미터를 MachineConfig로 적용합니다.
이미지 풀 시크릿 생성¶
rbln-system 네임스페이스를 만들고 RBLN Portal 계정을 drivercred 이미지 풀 시크릿에 저장합니다. 드라이버와 RSMD 모두 이 시크릿을 사용합니다.
RBLN NPU Operator 설치¶
웹 콘솔 또는 CLI로 OLM 설치를 진행합니다. 한 가지 설치 방법을 선택합니다.
웹 콘솔을 통한 설치¶
- OpenShift 웹 콘솔에서 Operators > OperatorHub로 이동합니다.
- All Projects를 선택합니다.
- RBLN Operator > RBLN NPU Operator를 검색한 다음 선택합니다.
- Install Operator 페이지에서 다음 옵션을 설정합니다:
- Update channel:
stable - Version: 설치할 릴리스. 카탈로그에서 제공하는 버전과 지원 버전을 확인합니다.
- Installed Namespace:
rbln-system(권장)
- Update channel:
- Install을 클릭합니다.
웹 콘솔로 설치했다면 Operator 준비 상태 확인으로 진행합니다.
CLI를 통한 설치¶
클러스터 카탈로그에서 채널과 CSV를 조회합니다. Automatic 설정은 이후 같은 채널의 OLM 업데이트도 자동 승인합니다.
두 값이 모두 표시된 뒤 Subscription을 적용합니다. 하나라도 비어 있으면 패키지 매니페스트와 카탈로그를 확인합니다.
Operator 준비 상태 확인¶
어느 방법으로 설치했든 설치가 끝나면 Subscription을 조회합니다. CLI 예제의 이름은 rbln-npu-operator입니다. 웹 콘솔에서 다른 이름으로 생성했다면 SUBSCRIPTION을 해당 이름으로 바꿉니다.
CSV가 Succeeded 상태가 되면 다음 단계로 진행합니다. 설치가 실패하면 oc describe subscription "$SUBSCRIPTION" -n rbln-system을 실행하고 InstallPlan을 확인합니다.
다음 단계에서는 CSV에서 현재 Operator 버전에 맞는 API 필드와 이미지를 가져옵니다. 웹 콘솔로 설치한 경우에도 같은 절차를 따릅니다.
RBLNClusterPolicy 인스턴스 생성¶
RBLNClusterPolicy는 노드 컴포넌트와 이미지를 정의합니다. CSV에서 예제를 가져와 Device Plugin을 사용하도록 설정합니다. CSV의 API 버전과 컴포넌트 이미지는 유지합니다.
RBLNClusterPolicy 인스턴스를 생성합니다.
RBLNDriver 인스턴스 생성¶
RBLNDriver는 대상 노드에 드라이버를 배포합니다. 예제를 추출하고 이미지와 인증 필드를 확인합니다.
적용 전에 드라이버 필드를 확인합니다.
driver.json의 필드 | 확인할 내용 |
|---|---|
spec.registry, spec.image, spec.version | 이 필드로 지정한 이미지가 존재하고 워커의 NPU 제품군과 OS 및 커널을 지원해야 합니다. 자세한 내용은 드라이버 이미지 선택에서 확인할 수 있습니다. |
spec.imagePullSecrets | 준비 단계에서 만든 drivercred가 포함되어야 합니다. |
spec.smd.registry, spec.smd.image | RSMD 리포지토리에 접근할 수 있어야 합니다. 이미지는 드라이버와 같은 버전 태그를 사용합니다. |
RBLNDriver 인스턴스를 생성합니다.
설치 확인¶
OLM 설치가 끝나면 RBLNDriver 인스턴스와 RBLNClusterPolicy 인스턴스가 준비될 때까지 기다립니다. 아래는 정상 상태의 출력 예시로, 이름과 노드 수는 환경에 따라 다릅니다.
$ oc get rblnclusterpolicy "$POLICY" \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state'
NAME STATE
rbln-cluster-policy ready
$ oc get rblndriver "$DRIVER" \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state,READY:.status.readyNodes,DESIRED:.status.desiredNodes'
NAME STATE READY DESIRED
rbln-driver ready 1 1
다음 조건을 모두 확인합니다.
RBLNClusterPolicy인스턴스의 상태가ready입니다.RBLNDriver인스턴스의 상태가ready입니다.
$ oc 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
$ oc 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 4
배치 가능한 워커 하나 이상에 NPU가 1개 이상 표시되어야 합니다.
NPU Pod 실행¶
같은 OpenShift 컨텍스트에서 NPU Pod 실행하기를 진행합니다.
Operator를 제거하려면 제거 가이드의 OLM 절차를 따릅니다. 제한된 네트워크 환경에서 설치하는 방법은 에어갭 설치에 정리되어 있습니다.
