반응형
이번에 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 명령어를 입력했는데 동작이 잘 되면 됩니다.
감사합니다.
반응형
'쿠버네티스' 카테고리의 다른 글
파드 내 외부 통신 오류 (calico node already using the IPv4 address) (0) | 2025.04.20 |
---|---|
POD 생성 시 kyverno error 해결 (0) | 2025.01.06 |
Helm 차트로 설치한 어플리케이션의 values.yaml 내용 확인하기 (0) | 2025.01.06 |
Consul 삭제 후에도 webhook 에러 발생 (2) | 2024.12.31 |
GPU 파드 생성 시 겪었던 오류 (nvidia-container-runtime) (0) | 2024.11.11 |