본문 바로가기
[GPUaaS]/GPUmgt

[NCP 실전] GPU 노드 오토스케일링시 NVIDIA Device Plugin / DCGM Exporter 자동 설치 (DaemonSet)

by METAVERSE STORY 2026. 1. 14.
반응형

 

 

**GPU 오토스케일링 환경에서 Helm + DaemonSet 구조를 쓰는 “핵심 이유”**

 


✅ 결론 (한 줄 요약)

네. 됩니다.
GPU 노드가 3대 → 5대로 오토스케일링되면
새로 추가된 2대에도 자동으로

  • NVIDIA Device Plugin
  • DCGM Exporter
    가 배포되고,
    Prometheus → Grafana 모니터링에 자동 포함됩니다.

👉 추가 작업 0 (Zero Touch) 입니다.

 

 

 


1️⃣ 왜 자동으로 되나? (구조 핵심)

핵심 포인트는 이것입니다

NVIDIA Device Plugin과 DCGM Exporter는 “DaemonSet”으로 배포됨

DaemonSet의 특징

  • 노드가 추가되면 자동으로 Pod 생성
  • 노드가 삭제되면 Pod 자동 제거
  • 사람이 개입할 필요 없음

 

 

 


2️⃣ 실제 동작 흐름 (GPU 노드 오토스케일 시)

상황

  • 기존 GPU 노드: 3대
  • 오토스케일링으로 GPU 노드: 5대

 

 

 


🔁 내부에서 자동으로 일어나는 일

① 새 GPU 노드 2대 생성

 
gpu-node-4
gpu-node-5

(NCP가 Driver 포함 상태로 생성)


② Device Plugin DaemonSet 동작

 
nvidia-device-plugin-daemonset
 ├─ gpu-node-1 ✔
 ├─ gpu-node-2 ✔
 ├─ gpu-node-3 ✔
 ├─ gpu-node-4 ✔ (자동 생성)
 └─ gpu-node-5 ✔ (자동 생성)
 

→ Kubernetes가 자동으로 Pod 배치


③ DCGM Exporter DaemonSet 동작

 
dcgm-exporter
 ├─ gpu-node-1 ✔
 ├─ gpu-node-2 ✔
 ├─ gpu-node-3 ✔
 ├─ gpu-node-4 ✔ (자동 생성)
 └─ gpu-node-5 ✔ (자동 생성)

④ Prometheus 자동 수집

  • ServiceMonitor가 label 기반으로 타겟 자동 발견
  • 새로운 dcgm-exporter Pod를 자동 Target 추가

⑤ Grafana 자동 반영

  • PromQL은 노드 수에 무관
  • 새 노드 메트릭이 자동으로 그래프에 추가

 

 

 


3️⃣ 실제로 확인하면 이렇게 보입니다

GPU 노드 수 증가 확인

 
kubectl get nodes | grep gpu

 

 


Device Plugin Pod 확인

 
kubectl get pods -n kube-system | grep nvidia

출력 예:

 
nvidia-device-plugin-daemonset-aaa  Running  gpu-node-4
nvidia-device-plugin-daemonset-bbb  Running  gpu-node-5

 

 

 


DCGM Exporter Pod 확인

 
kubectl get pods -n monitoring | grep dcgm

 

 

 


Prometheus Target 확인

 
Status → Targets dcgm-exporter (5/5 UP)

 

 

 


4️⃣ Grafana 대시보드는 왜 수정할 필요가 없나?

이유

  • Grafana는 노드 이름을 하드코딩하지 않음
  • 보통 이런 쿼리 사용:
 
avg by (instance) (DCGM_FI_DEV_GPU_UTIL)

→ instance label이 자동 추가됨

 

 

 


5️⃣ “자동으로 안 되는” 경우는 언제?

아래 중 하나라도 빠지면 ❌

문제 결과
Device Plugin이 DaemonSet 아님 새 노드 GPU 인식 안됨
DCGM Exporter toleration 누락 GPU 노드에 Pod 배치 안됨
ServiceMonitor 없음 Prometheus가 새 노드 수집 안함
nodeSelector 고정 특정 노드만 감시

 

 

 


6️⃣ 오토스케일링 환경에서 꼭 확인할 설정

DCGM Exporter Helm 값 (중요)

 
--set tolerations[0].key="nvidia.com/gpu" \
--set tolerations[0].operator="Exists" \
--set tolerations[0].effect="NoSchedule"

 

 

(선택) GPU 노드만 타게팅

 
--set nodeSelector."nvidia\.com/gpu\.present"="true"

 

 

 


7️⃣ 오토스케일링 + GPU 모니터링 정석 아키텍처

 
GPU HPA / Cluster Autoscaler
        ↓
  GPU Node 추가
        ↓
DaemonSet 자동 배포
(Device Plugin / DCGM Exporter)
        ↓
Prometheus Target 자동 추가
        ↓
Grafana 자동 시각화

 

 

 


8️⃣ 핵심 문장 (이해 체크)

“Helm으로 설치했느냐”가 중요한 게 아니라
“DaemonSet이냐”가 자동 확장의 핵심이다.”

 

 

반응형

댓글