쿠버네티스

EKS 클러스터에서 GPU 자원 사용

황동리 2025. 6. 16. 13:39
반응형

이번에 EKS 클러스터에서 GPU를 사용하는 방법에 대해 알아보겠습니다.

 

방법은 간단 했습니다.

 

먼저 EKS 클러스터에 붙을 노드 그룹을 정의 해주는데, 여기서 저는 아래와 같이 설정을 했습니다.

instance_types = [ "g4dn.xlarge" ]
ami_type = "AL2023_x86_64_NVIDIA"

 

ami_type  AL2023_x86_64_NVIDIA 로 해주면 기본적으로 Nvidia-toolkit이 설치가 되어서

 

nvidia/k8s-device-plugin 만 설치해주면 되었습니다.

nvidia/k8s-device-plugin 설치하는 이유

Kubernetes 기본 기능만으로는 GPU 자원에 대한 스케줄링이나 할당이 불가능합니다.

즉, 파드에 nvidia.com/gpu 리소스를 지정하더라도, 쿠버네티스가 GPU를 실제로 인식하고 할당하려면 별도의 device plugin이 필요합니다.


GPU 리소스를 사용하기 위한 Device Plugin 설치

 

설치 방법은 아래와 같습니다.

kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.1/nvidia-device-plugin.yml

 

할당 가능한 GPU가 있는지 확인

kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"

 

이제 POD 생성하여 테스트 진행

apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
    - name: cuda-container
      image: nvidia/cuda:11.8.0-base-ubuntu20.04
      resources:
        limits:
          nvidia.com/gpu: 1
      command: [ "bash", "-c", "--" ]
      args: [ "while true; do nvidia-smi; sleep 30; done;" ]

 

결과 확인

 

파드가 정상적으로 동작하고, 파드 내부에서 nvidia-smi 명령어를 입력했는데 동작이 잘 되면 됩니다.

 

감사합니다.

반응형