노드별로 다른 드라이버 버전 사용하기¶
다음 두 가지 구성 중 하나로 노드별 드라이버 버전을 지정합니다.
- ATOM™ + Rebel100™: 제품군별로 서로 다른 드라이버 버전을 설치합니다.
- Rebel100™ 두 노드:
nodeSelector로 노드를 구분해 서로 다른 드라이버 버전을 설치합니다.
Operator가 아직 설치되어 있지 않다면 먼저 NPU Operator 설치 절차를 진행합니다.
1. Helm values 수정하기¶
현재 릴리스의 사용자 설정을 npu-values.yaml로 가져옵니다.
두 예제 중 하나를 선택해 driver 설정을 npu-values.yaml에 병합합니다. 기존 driver.instances 항목이 있다면 선택한 예제의 항목으로 교체하고, 나머지 설정은 유지합니다.
ATOM™ 노드에는 3.4.1, Rebel100™ 노드에는 3.5.1을 설치합니다. nodeSelector에 제품군 레이블을 지정합니다.
같은 제품군의 노드 두 대에 driver-group 레이블을 지정합니다. <REBEL100_NODE_1>과 <REBEL100_NODE_2>를 각각 다른 Rebel100™ 노드 이름으로 바꿉니다.
stable 노드는 공통 설정의 3.5.0을 상속하고, canary 노드는 인스턴스에서 지정한 3.5.1을 사용합니다. 각 nodeSelector는 제품군과 그룹 레이블을 함께 확인합니다.
| npu-values.yaml | |
|---|---|
driver.deployDefault: false이므로 각 인스턴스가 선택한 노드에만 드라이버를 설치합니다. 드라이버를 설치할 모든 NPU 노드가 인스턴스 중 하나에 포함되어야 합니다. 레지스트리와 이미지 풀 시크릿 등 인스턴스에서 생략한 값은 공통 driver 설정을 상속합니다.
2. Helm values 적용하기¶
현재 차트 버전을 유지하면서 수정한 values 파일을 적용합니다.
RBLNDriver 인스턴스와 RBLNClusterPolicy 인스턴스가 준비될 때까지 기다립니다.
3. 노드별 RBLNDriver 인스턴스 확인하기¶
driver.instances의 각 항목은 rbln-driver-<인스턴스 이름> 리소스로 생성됩니다. 드라이버 버전과 노드의 rebellions.ai/npu.driver.owner 레이블을 확인합니다. 아래 출력은 인스턴스마다 노드 한 대를 사용하는 예시이며, 노드 이름과 수는 환경에 따라 달라집니다.
$ kubectl get rblndriver \
-o 'custom-columns=NAME:.metadata.name,VERSION:.spec.version,STATE:.status.state,READY:.status.readyNodes,DESIRED:.status.desiredNodes'
NAME VERSION STATE READY DESIRED
rbln-driver-atom 3.4.1 ready 1 1
rbln-driver-rebel100 3.5.1 ready 1 1
$ kubectl get nodes -l rebellions.ai/npu.present=true \
-o 'custom-columns=NAME:.metadata.name,DRIVER:.metadata.labels.rebellions\.ai/npu\.driver\.owner'
NAME DRIVER
node-atom rbln-driver-atom
node-rebel100 rbln-driver-rebel100
$ kubectl get rblndriver \
-o 'custom-columns=NAME:.metadata.name,VERSION:.spec.version,STATE:.status.state,READY:.status.readyNodes,DESIRED:.status.desiredNodes'
NAME VERSION STATE READY DESIRED
rbln-driver-rebel100-canary 3.5.1 ready 1 1
rbln-driver-rebel100-stable 3.5.0 ready 1 1
$ kubectl get nodes -l rebellions.ai/npu.present=true \
-o 'custom-columns=NAME:.metadata.name,DRIVER:.metadata.labels.rebellions\.ai/npu\.driver\.owner'
NAME DRIVER
node-rebel100-a rbln-driver-rebel100-stable
node-rebel100-b rbln-driver-rebel100-canary
각 노드의 DRIVER가 선택한 인스턴스와 일치하고 두 인스턴스가 ready인지 확인합니다.