Why
왜 만들기 시작했나
GPU 서버가 몇 대 있는데 각각 따로 놀고 있었습니다.
모델 하나 띄우려면 서버에 들어가 yaml을 만지고, 어느 서버가 비어 있는지는 직접 nvidia-smi를 쳐봐야 알고, 안 쓰는 모델이 GPU를 며칠씩 잡고 있어도 아무도 모릅니다. 기본 Kubernetes는 GPU가 NVLink로 묶였는지 PCIe로 묶였는지 모르니 배치도 그냥 빈 곳에 됩니다.
vanilla Kubernetes에 vLLM을 직접 올리는 것과 비교해 본 기록은 이 글에 있습니다. 그 글에서 겪은 번거로움이 이 프로젝트의 출발점입니다.
"웹 화면에서 모델을 띄우고, GPU 점유율을 보고, 미사용 모델은 자동 해제하고, 장애 나면 알림 받고 싶다." — 처음에 적어둔 한 줄 목표. 아직도 이 문장 기준으로 만듭니다.
How
GPU를 묶고, 자동 배치하는 구조
흩어진 GPU 서버를 하나의 컨트롤 플레인으로 묶고, 모델을 알맞은 하드웨어에 자동 배치합니다.

통합 관리여러 GPU 서버를 하나의 컨트롤 플레인으로 통합
자동 배치모델 크기별 고성능(HP)/가성비(GP) 클러스터로 트래픽 자동 분배
하드웨어 인지 v0.9 로드맵NVLink/PCIe/NUMA 토폴로지 인식, 통신 병목 최소화
고가용성장애 시 다른 클러스터로 자동 Failover
인프라 레이어vLLM 같은 추론 엔진을 대체하는 게 아니라 그 위에서 동작
Console
웹 콘솔에서 모델만 고르면 끝
사람은 선택만, 나머지는 H-MAS가 처리합니다.
1모델 선택
2정책 자동 추천
3배포
4실시간 대시보드



Status
지금 되는 것, 아직 안 되는 것
v0.7 기준입니다. 주간 진행 상황은 개발 노트에 남깁니다.
되는 것
- 모델 등록 → 배포 → API 호출까지 멀티 클러스터에서 동작
- 모든 모델을 하나의 OpenAI 호환 엔드포인트로 호출
- vLLM 등 5종 이상의 서빙 런타임
- Prometheus 기반 TPS·지연시간·GPU 메트릭, Pod 로그
- 이미지 사전 캐싱, 장애 자동 감지, 클러스터 간 Failover
- 조직·권한 체계, 관리자 콘솔, 라이트·다크 모드
아직 안 되는 것
- NVLink/PCIe/NUMA 토폴로지를 보고 배치하는 것. v0.9 목표입니다.
- 다른 환경에서의 검증. 지금까지는 제 클러스터에서만 돌려봤습니다.
- 소스 공개. 비공개로 진행하고, 과정은 개발 노트로 남깁니다.


Fit
이런 환경을 생각하고 만듭니다
GPU 서버가 몇 대에서 수십 대, 클라우드는 쓰기 어렵고, 서빙만 보는 사람은 따로 없는 곳. 기존 Kubernetes 위에 설치하고, 데이터와 모델은 그 안에 머뭅니다.
써보고 싶다면
아직 제 환경에서만 돌고 있어서, 다른 환경에서 써보고 싶은 분이 있으면 메일 주세요.
설치를 같이 해보는 정도는 언제든 환영입니다.