GPU 노드

Prev Next

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

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

주의
  • 네이버클라우드플랫폼에서 제공하는 GPU 서버는 NVIDIA의 Multi-Instance GPU(MIG) 기능을 지원하지 않습니다. 안정적인 서비스 운영을 위해 제공되는 기본 GPU 설정을 사용해야 합니다.
  • GPU 노드로만 구성된 클러스터는 사용에 제약이 있습니다.
  • Ncloud kubernetes Service에서 제공되는 기본 오브젝트는 반드시 일반 노드가 필요합니다.
  • 일반 노드풀에 GPU 노드풀을 추가하여 사용해 주십시오.
참고
  • GPU 노드에서 SMI/CUDA 드라이버를 업그레이드할 수 있습니다.
  • runfile을 사용하여 드라이버 업그레이드를 진행할 수 있으며 자세한 방법은 GPU 드라이버/CUDA 재설치 및 업그레이드 문서를 참조해 주십시오.

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

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
Plain text
helm repo add nvdp https://nvidia.github.io/k8s-device-plugin \
   && helm repo update
Plain text

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

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

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
Plain text

아래 명령어를 통해 노드의 상세 정보를 조회하여 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
...
Plain text

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