Install NVIDIA Driver
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update && sudo apt install -y ubuntu-drivers-common
sudo ubuntu-drivers autoinstall
sudo reboot
Install NVIDIA-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2 &&
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
Nvidia-docker default container runtime으로 설정
- 쿠버네티스는 기본적으로 Docker-ce를 default container runtime으로 사용한다.
- 따라서, Docker Contaier 내에서 NVIDIA GPU를 사용하기 위해서는 NVIDIA-Docker를 Container Runtime을 사용해 pod을 생성할 수 있도록 Default Runtime을 수정해 주어야한다.
sudo vi /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
- /etc/docker/daemon.json 파일을 open해 위 처럼 수정
sudo systemctl daemon-reload
sudo service docker restart
sudo docker info | grep nvidia
mlops@ubuntu:~$ docker info | grep nvidia
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux nvidia runc
Default Runtime: nvidia
Nvidia-Device-Plugin
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.10.0/nvidia-device-plugin.yml
- nvidia-device-plugin daemonset 생성
kubectl get pod -n kube-system | grep nvidia
- nvidia-device-plugin pod이 RUNNING 상태로 생성되었는지 확인
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"
- node 정보에 gpu가 사용 가능하도록 설정되었는지 확인
- 실습 진행 클러스터의 GPU 개수에 맞게 출력된다.