콘텐츠로 이동

Kubernetes 배포

이 섹션에서는 Coding Assistant 서빙 스택을 Kubernetes에 배포합니다. RBLN-CR13 노드를 준비하고, Pod에 NPU와 RoCE NIC을 할당하도록 구성한 뒤, Helm 차트로 스택을 설치합니다. 마지막 배포 단계에서 최초 추론 응답을 확인합니다. 배포 단계에서 참고하는 차트 values는 차트 구성 참고 자료에 모았습니다.

사전 준비

이 섹션은 Kubernetes 클러스터 구축을 다루지 않습니다.

스택 계층

서빙 스택은 누가 구축하는지에 따라 네 계층으로 나뉩니다.

계층 구축 주체 구성 요소
서빙 스택 차트 Gateway, HTTPRoute, InferencePool, llm-d Endpoint Picker(EPP), 라우팅 사이드카를 포함한 prefill Deployment와 decode Deployment, serve ConfigMap, ServiceAccount, 컴파일 캐시 PersistentVolumeClaim(PVC), GatewayClass가 istio일 때 EPP DestinationRule
사용자 리소스 사용자 Namespace, Image Pull Secret, HF 토큰 Secret, 가중치를 미리 적재한 모델 PVC, StorageClass, ResourceClaimTemplate(이하 RCT) npu-rdma
플랫폼 소프트웨어 사용자 RBLN NPU Operator, dranet, Kubernetes Gateway API CustomResourceDefinition(CRD), Kubernetes Gateway API Inference Extension(GAIE) CRD, GatewayClass provider
노드 사용자 NPU, RoCE NIC, Rebellions Direct Storage(RDS)용 raw NVMe, RoCE NIC 드라이버, RBLN Driver

모니터링은 선택 사항입니다. 모니터링을 사용하면 차트와 사용자가 다음 구성 요소를 추가로 구축합니다.

계층 구축 주체 구성 요소
모니터링 차트와 사용자 VMPodScrape와 VMServiceScrape 리소스(기본값, Prometheus Operator에서는 PodMonitor와 ServiceMonitor), OpenTelemetry collector, 메트릭 수집기

모니터링 구성은 운영을 참고하세요.

배포 단계

스택은 노드 계층부터 한 계층씩 순서대로 구축합니다.

단계 문서 생성하는 항목 완료 확인
1 노드 준비 호스트의 RoCE NIC 드라이버, RBLN NPU Operator, dranet, RBLN NPU Operator의 RDS 활성화, RDS 노드 레이블 rebellions.ai/rds.present=true 노드 준비 확인의 명령이 모두 기대한 결과를 출력하고, kubectl get deviceclass에 npu.rebellions.ai와 dranet이 있음
2 디바이스 할당 Namespace, RCT npu-rdma kubectl get resourceslices에 노드마다 npu.rebellions.ai와 dra.net의 ResourceSlice가 있고, kubectl -n <ns> get resourceclaimtemplate npu-rdma가 조회됨
3 클러스터 기반 구성 Gateway API CRD, GAIE CRD, GatewayClass provider, 스택 Namespace의 Secret과 모델 저장소 클러스터 확인 및 주요 설정의 명령이 모두 성공하고 DRA ok가 출력됨
4 Pod 명세 요구 사항 없음 스택 Namespace의 Pod Security Standards 수준이 restricted가 아님(non-root 모드는 baseline을 충족). 각 노드의 할당 가능 메모리가 노드 메모리 예산 확인의 계산식 이상
5 컴파일 캐시 차트 values의 storage.compileCache 설정. 컴파일 캐시 PVC는 7단계 설치 때 차트가 생성 설치 후 kubectl -n <ns> get pvc에서 컴파일 캐시 PVC가 Bound
6 시작 및 준비 상태 프로브 없음 설치 후 Pod 이벤트에 Startup probe failed가 없음
7 서빙 스택 설치(Helm 차트) Helm 릴리스와 스택 계층 표의 서빙 스택 계층 객체(Gateway, HTTPRoute, InferencePool, EPP, prefill과 decode의 Deployment, 컴파일 캐시 PVC 등) kubectl -n <ns> get pods에서 prefill, decode, EPP Pod가 모두 Ready이고, 최초 추론의 Chat Completions 요청에 응답이 옴