본문으로 이동
토스증권이 GPU-aware를 넘어 GPU-native 클러스터를 구축한 방법
문서

토스증권이 GPU-aware를 넘어 GPU-native 클러스터를 구축한 방법

장재영/김진웅 · 토스 · 토스 기술 블로그

원본 보기

소개

토스증권이 Kubernetes GPU 클러스터의 운영 한계를 해결한 방법

AI 핵심 요약

GPU를 쿠버네티스 자원으로 등록해 컨테이너에서 쓰게 하는 것만으로는 개별 GPU 오류 감지, 노드 투입 판단, 서비스별 자원 배치 문제를 해결할 수 없었습니다. 토스증권은 nvidia-validator를 보완한 readiness DaemonSet과 DCGM Exporter, Xid 알럿을 연결해 Node Ready와 GPU Ready를 구분하고, 표준 구성부터 CUDA·LLM 서빙까지 확인하는 preflight를 통과한 노드만 서비스에 투입했습니다. 자원 제공에는 MIG와 MIG Manager를 도입하고, MIG 조각을 물리 GPU 한 장부터 채우는 Packed Allocation을 NVIDIA k8s-device-plugin에 기여해 v0.20.0부터 설정으로 사용할 수 있게 했습니다. GPU-native 클러스터를 만들려면 GPU 인식과 할당을 넘어 상태 관측, 검증된 투입 절차, 워크로드에 맞는 분할·배치 정책까지 운영 체계에 포함해야 한다는 점을 보여 줍니다.

  • Node Ready와 Pod Running만으로 GPU의 개별 장치 상태나 CUDA 실행 경로의 정상 여부를 보장할 수 없습니다.
  • nvidia-smi의 종료 코드만 확인하지 말고 ERR! 출력, 치명적 Xid, 실제 GPU 수와 Device Plugin 노출 수의 차이도 readiness 판정에 반영하세요.
  • 신규·복구 노드는 표준 구성, 하드웨어 부하, CUDA 연산, 실제 모델 서빙까지 검증한 뒤 스케줄링에 투입하세요.
  • MIG Manager로 인스턴스 구성을 선언적으로 관리하고, Packed Allocation으로 MIG 조각을 한 GPU부터 채우면 비어 있는 GPU를 확보하기 쉽습니다.
  • GPU 할당은 장치 선택까지이며 VRAM 용량이나 연산 비율을 쿠버네티스가 cgroup처럼 직접 제한하는 것은 아닙니다.