NPU 드라이버 설치¶
RBLN NPU Operator는 각 노드에 NPU 커널 드라이버를 설치하는 두 가지 방법을 지원합니다. 오퍼레이터 차트를 배포하기 전에 둘 중 하나를 선택하세요.
차트 기본값은 driver.enabled=false이므로, 컨테이너 드라이버 모드를 명시적으로 활성화하지 않으면 호스트 드라이버 모드가 사용됩니다.
- 컨테이너 드라이버 모드(
driver.enabled=true): 오퍼레이터가RBLNDriverCR의 스펙에 따라 DaemonSet을 배포하고, 커널 드라이버를 설치·관리합니다. 드라이버의 설치, 업그레이드, 롤백 등 라이프사이클을 오퍼레이터가 Kubernetes 방식으로 일관되게 제어해야 할 때 사용합니다. - 호스트 드라이버 모드(
driver.enabled=false): 오퍼레이터를 배포하기 전에 각 노드의 호스트 OS에 커널 드라이버를 직접 설치합니다(runfile 인스톨러, 배포판 패키지, dkms 등). 이후 오퍼레이터는 호스트에 설치된 드라이버를 자동으로 감지하고, 컨테이너 드라이버를 통한 설치, 업그레이드, 롤백은 수행하지 않습니다.
이 페이지에서는 두 설치 방식과 노드별 활성 모드를 확인하는 방법을 다룹니다. 오퍼레이터 차트 설치에 대해서는 NPU Operator 설치를 참고하세요.
컨테이너 드라이버 모드¶
helm install 또는 helm upgrade를 실행할 때 driver.enabled=true를 설정합니다. 오퍼레이터가 RBLNDriver CR을 생성하고 드라이버 DaemonSet을 배포한 뒤 각 노드의 커널 드라이버를 일관된 상태로 유지합니다.
드라이버 이미지 선택, 업그레이드 롤아웃 정책, 수동 업그레이드, 노드별 업그레이드 제외 등 전체 라이프사이클은 NPU 드라이버 업그레이드 워크플로우를 참고하세요.
호스트 드라이버 모드¶
먼저 모든 NPU 노드에 커널 드라이버를 설치한 뒤(RBLN 드라이버 설치 가이드 참고), rbln-smi가 호스트의 PATH에 있는지 확인합니다. 그런 다음 driver.enabled=false로 오퍼레이터를 설치합니다.
또는 명령줄에서 직접 설정할 수도 있습니다.
driver.enabled=false이면 차트는 RBLNDriver CR을 생성하지 않고 드라이버 DaemonSet도 배포하지 않습니다. 다른 모든 컴포넌트들은 정상적으로 배포됩니다. 이들은 커널 모듈만 로드되어 있으면 동작하며, 커널 모듈의 설치 방식과 무관하게 동작하기 때문입니다.
운영 시 책임¶
- 커널 업데이트: 호스트 커널이 업그레이드된 경우, 드라이버를 반드시 재설치해야 합니다.
- 드라이버 업그레이드: 드라이버 업그레이드는 apt, yum, DKMS 등 기존 호스트 관리 도구를 사용해 진행합니다. 업그레이드 이후에는 노드를 재부팅하여 새 커널 모듈이 적용되도록 해야 합니다.
혼합 클러스터¶
컨테이너 드라이버 모드 노드와 호스트 드라이버 모드 노드는 하나의 RBLNClusterPolicy에서 함께 운영될 수 있습니다. driver.enabled=true로 설정되어 있어도, 오퍼레이터는 각 노드의 상태를 개별적으로 감지해 해당 노드에 맞는 방식으로 동작합니다.
- 노드에서 드라이버 DaemonSet이 시작됩니다.
- Driver Manager initContainer가
chroot /host rbln-smi --version을 실행해 호스트에 설치된 드라이버를 확인합니다. - 확인에 성공하면 Driver Manager는 노드에
rebellions.ai/npu.deploy.driver=pre-installed라벨을 추가하고 드라이버 컨테이너를 통해 커널 모듈을 설치하지 않고 종료합니다. 호스트 드라이버는 그대로 유지됩니다. - 이후에도 같은 감지 로직이 반복 적용되며, 전체 동작은 멱등성을 보장합니다.
- 그 외 오퍼레이터가 관리하는 모든 컴포넌트들은 호스트에 설치된 커널 모듈을 사용해 정상적으로 배포·동작합니다.
이 자동 감지 기능을 통해 다음과 같은 두 가지 일반적인 시나리오를 지원합니다.
- 드라이버 설치 방식이 노드별로 혼재된 경우에도 정상적으로 동작합니다. 일부 노드는 호스트에 드라이버가 직접 설치되어 있고, 다른 노드는 컨테이너 드라이버를 사용할 수 있지만, 오퍼레이터가 각 노드에 맞는 설치 방식을 자동으로 선택하므로 별도의 노드별 설정은 필요 없습니다.
- 설치 후 노드를 호스트 드라이버 모드로 전환하는 경우에도 간단히 처리할 수 있습니다. 호스트에 커널 드라이버를 설치한 뒤 드라이버 파드를 재시작하면 드라이버 파드가 호스트 드라이버를 감지하여 컨테이너 기반 설치를 자동으로 중단합니다.
모든 노드가 호스트에 직접 설치된 드라이버를 사용하는 클러스터라면 driver.enabled=false를 사용하는 편이 좋습니다.
노드별 활성 모드 확인¶
설치 후 각 노드가 어떤 모드를 사용하는지 확인합니다.
- 값이
true인 경우 오퍼레이터가 관리하는 컨테이너 드라이버가 노드에서 활성화된 상태입니다. - 값이
pre-installed인 경우 호스트에 드라이버가 이미 존재하는 것으로 감지되어, 컨테이너 드라이버를 통한 설치는 건너뜁니다.