📋 요약
이 글에서는 Kubernetes 기반 Fault-Tolerant GPU 클러스터의 안정적 운영과 유지 관리 방안을 다룹니다.
대규모 AI 인프라에서 장애 대응과 성능 저하 예방이 운영 신뢰성에 미치는 의미를 정리합니다.
#Kubernetes #GPU클러스터 #FaultTolerance #Slurm #InfiniBand

생성형 AI와 대규모 언어 모델(LLM) 시대에 고성능 연산에 대한 수요는 일시적인 급증을 넘어, 이제는 거대하고 지속적인 워크로드로 변화했습니다. 수십억 개의 파라미터를 가진 모델을 학습시키는 것은 단순히 계산 능력을 겨루는 일이 아닌, 인프라를 안정적으로 운영하는 레이스와 같습니다.
수천 개의 GPU를 베어메탈(Bare-metal) 환경에서 대규모로 운영할 때, 중요한 것은 하드웨어 고장 여부가 아닙니다. 고장은 반드시 일어납니다. 핵심은 “장애 발생 시 오케스트레이션 레이어가 이를 얼마나 유연하게 처리하느냐”입니다. 이를 위해 GPU 클러스터의 성능과 탄력성을 유지하기 위해 몇 가지 핵심 원칙과 시스템을 구축해야 합니다.
Kubernetes와 맞춤형 자동화 기술을 활용하여 안정적인 GPU 클러스터를 유지하는 방법을 소개합니다.
1. 자동화된 Fleet Life Cycle Management
수십 개의 GPU를 관리하는 것은 사람이 할 수 있지만, 수만 개를 관리하려면 하드웨어 상태 관리에 대해 "설정 후 망각(Set it and forget it)" 수준의 자동화가 필요합니다. 여기서 Fleet Lifecycle Controllers가 핵심 역할을 합니다.
이 컨트롤러들은 클러스터의 '면역 체계'와 같습니다. 이들은 다음과 같은 하드웨어 상태 신호를 지속적으로 모니터링합니다.
- GPU 온도 및 전력 소모
- 메모리 ECC(Error Correction Code) 오류
- 네트워크 인터페이스의 안정성
- 선제적 조치(Proactive Remediation): GPU 발열로 인한 스로틀링이나 '소리 없는' 메모리 오류 같은 미세한 성능 저하가 감지되면, 컨트롤러는 시스템이 완전히 멈출 때까지 기다리지 않습니다.
- 자동화된 대응: 해당 노드를 '드레인(Drain)'하고 Kubernetes 스케줄러에서 제외(Cordon)한 뒤, 고객의 워크로드에 영향을 주기 전에 자동으로 재부팅하거나 하드웨어 교체 티켓을 생성합니다.
2. Deep Observability & Telemetry
보이지 않는 것은 고칠 수 없습니다. 분산 학습 환경에서는 기술적으로는 '동작 중'이지만 성능이 50%만 나오는 그레이 페일러(Grey Failure) 노드 하나가 전체 학습 작업을 병목 현상에 빠뜨릴 수 있습니다.
다음과 같은 실시간 지표를 중앙 집중화하여 모니터링해야 합니다.
- GPU 지표: 전력 사용량, 클록 속도, 메모리 사용률.
- 패브릭 상태: 패킷 손실이나 Link Flapping을 감지하기 위한 인피니밴드(InfiniBand) 모니터링.
- 스토리지 처리량: 데이터 로딩이 병목의 원인이 되지 않도록 보장.
이를 통해 엔지니어와 고객 모두에게 세밀한 텔레메트리를 제공함으로써 **평균 탐지 시간(MTTD)**을 획기적으로 줄입니다. 학습 속도가 왜 느려졌는지 고민하는 대신, 대시보드를 통해 성능 저하의 원인이 되는 구성 요소를 즉시 찾아낼 수 있어야 합니다.
3. Kubernetes와 HPC 스케줄러 통합
Kubernetes는 컨테이너 오케스트레이션의 표준이지만, 고성능 컴퓨팅(HPC) 분야는 오랫동안 복잡한 배치 스케줄링을 위해 Slurm에 의존해 왔습니다.
이 두 세계의 장점을 결합한 Slinky 프로젝트가 최근에 런칭되었습니다.
- Kubernetes는 현대적인 API, 컨테이너화, 리소스 관리를 제공합니다.
- Slurm은 대규모 분산 워크로드에 필요한 검증된 결함 허용(Fault Tolerance) 기능을 제공합니다.
대규모 학습 도중 노드 장애가 발생하면, Slinky는 작업을 지능적으로 재스케줄링하거나 재시작합니다. 이는 Kubernetes의 확장성과 HPC 스케줄러의 정밀함을 동시에 확보하게 해줍니다.
4. Stateless 노드 및 빠른 Reprovisioning
클러스터 안정성의 가장 큰 적 중 하나는 Configuration Drift입니다. 처음에는 동일했던 서버들이 패치, 로그 누적, 수동 설정 변경 등으로 인해 시간이 지나면서 조금씩 달라지는 현상을 말합니다.
이를 방지하기 위해 베어메탈 노드들은 상태 비저장(Stateless) 방식으로 운영되어야 합니다.
- 깨끗한 시작: 모든 노드는 부팅될 때마다 변하지 않는(Immutable) 깨끗한 이미지를 불러옵니다.
- 일관성: 이를 통해 노드로 구성된 클러스터의 모든 서버가 동일한 드라이버 버전과 커널 설정을 유지하도록 보장합니다.
- 속도: 노드에 이상이 생기면 디버깅에 시간을 허비하지 않습니다. 단순히 재부팅만 하면 몇 분 안에 최적의 상태로 복구됩니다.
5. 고성능 네트워킹 (InfiniBand & SHARP)
분산 학습 환경에서 네트워크는 곧 컴퓨터 그 자체입니다. 여러 노드에 걸쳐 있는 GPU들이 그래디언트(Gradient)를 동기화할 때 발생하는 미세한 지연 시간은 곧 학습 실패로 이어질 수 있습니다.
이를위해 SHARP(Scalable Hierarchical Aggregation and Reduction Protocol) 최적화가 적용된 인피니밴드 패브릭을 고려해야 합니다. SHARP는 AllReduce와 같은 집합 통신(Collective Communications) 작업을 GPU가 아닌 네트워크 스위치에서 직접 처리하도록 오프로딩합니다. 결과적으로 데이터 전송량이 줄어들고, 대규모 학습 시 흔히 발생하는 통신 병목 현상에 대해 클러스터가 훨씬 더 높은 탄력성을 갖게 됩니다.
6. DPU를 통한 보안 및 격리
신뢰성은 내부 및 외부의 간섭으로부터 클러스터를 보호하는 것도 포함합니다. 데이터 처리 장치(DPU)를 사용하여 네트워킹 및 보안 작업을 오프로딩합니다.
- 성능 격리: 네트워킹 및 보안 로직을 DPU로 옮김으로써, 호스트의 CPU와 GPU가 고객의 연산 작업에 100% 전념할 수 있도록 합니다.
- VPC 보안: 각 클러스터는 격리된 가상 사설 클라우드(VPC) 내에서 실행됩니다. 이는 멀티 테넌트 환경에서도 베어메탈의 성능을 그대로 유지하면서 작업의 보안과 프라이버시를 보장합니다.
- 스토리지 보안: DPU의 스토리지 가상화 기능을 활용하여 제어권을 이양한 이후에도 Bare Metal 노드에 local or remote 스토리지 장치로 부터 Block, FileSystem 를 제공하고, 고객 데이터 보안을 보장합니다.
결론
대규모 GPU 클러스터를 유지하는 것은 엔트로피와의 끊임없는 싸움입니다. 자동화된 라이프사이클 관리, 심층적인 관측 시스템, 그리고 하이브리드 워크로드 스케쥴링 아키텍처를 결합함으로써, 고객들이 인프라 걱정 없이 모델 개발에만 집중할 수 있는 환경을 제공해야 합니다.
자동화 Fleet Life Cycle Management 를 위해 현재 Nvidia 가 오픈소스로 공개한 Bare Metal Manager 를 실험해 보고 있습니다.