GPU 노드

Prev Next

VPC 환경에서 이용 가능합니다.

Ncloud Kubernetes Service의 워커 노드로 GPU 노드를 사용할 수 있습니다.

주의
  • 네이버 클라우드 플랫폼에서 제공하는 GPU 서버의 MIG(Multi-Instance GPU) 기능 지원 여부는 하이퍼바이저 유형에 따라 상이합니다. 자세한 내용은 각 GPU 노드 유형별 가이드를 참조해 주십시오.
    • XEN 하이퍼바이저: MIG 기능 미지원
    • KVM 하이퍼바이저: MIG 기능 지원
  • GPU 노드는 KR 리전에서만 사용 가능합니다.
  • GPU 노드로만 구성된 클러스터는 사용 제약이 있습니다.
  • Ncloud Kubernetes Service의 기본 오브젝트는 일반 노드를 필요로 하므로, 일반 노드풀과 GPU 노드풀을 함께 구성해야 합니다.
참고
  • GPU 노드에서는 SMI/CUDA 드라이버를 업그레이드할 수 있습니다.
  • runfile을 사용하여 드라이버 업그레이드를 진행할 수 있으며 자세한 방법은 GPU 드라이버/CUDA 재설치 및 업그레이드 문서를 참조해 주십시오.

GPU 리소스 사용 방식 선택

GPU 노드를 추가한 후 파드에서 GPU를 사용하려면 다음 두 가지 중 하나를 선택해 주십시오.

방식 드라이버 설치 대상 문서
NVIDIA device plugin 서버 이미지에 설치된 드라이버 사용 device plugin GPU 노드
NVIDIA GPU Operator 서버 이미지의 드라이버 또는 GPU Operator가 설치한 드라이버 드라이버, Container Toolkit, device plugin, 모니터링 컴포넌트 NVIDIA GPU Operator 활용

노드풀마다 GPU 모델이 다르거나 Kubernetes에서 드라이버 버전을 직접 지정해야 하는 경우, GPU Operator를 사용해 주십시오.

주의

두 방식을 같은 클러스터에 함께 설치하지 마십시오. GPU Operator가 device plugin을 함께 설치하므로 두 구성이 같은 GPU를 중복해서 등록합니다.

NVIDIA GPU 디바이스 플러그인 배치

GPU Operator를 사용하지 않는 경우, NVIDIA device plugin만 배치하여 GPU 리소스를 등록할 수 있습니다. GPU 플러그인을 배치하기 이전에는 쿠버네티스 클러스터에서 GPU 리소스를 사용할 수 없습니다.
클러스터에 GPU 노드가 운영중으로 변경된 후 NVIDIA 디바이스 플러그인을 배치하기 위해서는 아래 명령어를 실행해 주십시오.

1. Helm 설치

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \
   && chmod 700 get_helm.sh \
   && ./get_helm.sh

2. NVIDIA device plugin helm 저장소 추가

helm repo add nvdp https://nvidia.github.io/k8s-device-plugin \
   && helm repo update

3. NVIDIA device plugin 배포

아래 명령어를 통해 kube-system 네임스페이스에 NVIDIA device plugin을 배포합니다.

helm install --generate-name nvdp/nvidia-device-plugin -n kube-system
참고

HELM Chart는 NVIDIA에서 제공하고 있으므로, 문제 상황 발생 시 NVIDIA 공식 사이트에서 변경 여부를 확인해 주십시오.

빠른 시작을 위해 간단한 Damonset을 직접 배포하여 GPU 자원을 활성화할 수 있습니다.

$ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.0/deployments/static/nvidia-device-plugin.yml

4. GPU 사용 확인

아래 명령어를 통해 노드의 상세 정보를 조회하여 GPU 리소스의 사용 가능 여부를 확인할 수 있습니다.

$ kubectl describe [node-name]

...
Capacity:
  cpu:                4
  ephemeral-storage:  51341792Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             20474628Ki
  nvidia.com/gpu:     1
  pods:               110
Allocatable:
  cpu:                3920m
  ephemeral-storage:  47316595429
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             17425156Ki
  nvidia.com/gpu:     1
  pods:               110
...

디바이스 플러그인 사용

쿠버네티스는 디바이스 플러그인을 구현하여 파드가 GPU와 같은 특별한 하드웨어 기능에 접근할 수 있습니다. 자세한 내용 및 사용 방법은 공식 사이트에서 확인할 수 있습니다.