NPU 드라이버 수동 업그레이드¶
관리자가 드라이버 Pod를 수동으로 삭제하여 노드별 업그레이드 시점과 순서를 정합니다.
업그레이드 설정¶
기존 Helm values에서 driver.upgradePolicy.autoUpgrade: false를 설정합니다.
npuPodDeletion으로 NPU Pod의 eviction 허용 범위를 지정합니다.
| 설정 | 효과 | 기본값 |
|---|---|---|
npuPodDeletion.force | 컨트롤러 없는 NPU Pod의 eviction 허용 | false |
npuPodDeletion.deleteEmptyDirData | emptyDir를 사용하는 NPU Pod의 eviction 허용 | false |
노드별 업그레이드 진행¶
기존 Helm values의 driver.image.tag 또는 대상 인스턴스의 driver.instances.<key>.image.tag를 원하는 버전으로 변경해 적용합니다. 직접 관리하는 RBLNDriver는 spec.version을 변경합니다.
기존 Helm values와 차트 버전을 유지하면서 드라이버 태그를 변경합니다. <DRIVER_VERSION>을 원하는 드라이버 버전으로 바꿉니다.
<INSTANCE_KEY>를 기존 driver.instances의 키(예: atom, rebel100)로 바꿉니다.
업그레이드할 노드의 드라이버 Pod를 확인하고 삭제합니다. 새 Pod는 변경한 버전으로 생성됩니다.
로드된 드라이버가 교체되면 해당 노드가 cordon되고 NPU Pod가 evict됩니다.
업그레이드 확인¶
대상 노드의 새 드라이버 Pod가 Ready인지 확인하고, rbln-smi를 실행하여 업그레이드된 드라이버 버전을 확인합니다.
확인 명령의 출력 예시는 드라이버 자동 업그레이드하기의 로드된 버전 확인 단계에 나와 있습니다.
Eviction 문제와 재시도¶
eviction이 막히면 노드는 cordon을 유지하며 initContainer가 재시작될 때 다시 시도합니다. 노드의 rebellions.ai/npu-pod-eviction-blocked 어노테이션에서 원인을 확인할 수 있습니다.
Driver Manager의 eviction 타임아웃은 NPU_POD_EVICTION_TIMEOUT_SECONDS로 설정하며 기본값은 300초입니다. 타임아웃 후에도 cordon을 유지한 채 재시도합니다.