쿠버네티스 입문기 (3)
gpu 세팅은 별다를게 없습니다. 이전에 도커를 사용중이라면 그대로 사용하면 됩니다.
예전에 연구실 외국인들을 위해 작성해두었던 도커로 서버 세팅 기록을 남깁니다.
추가적으로 작업할것이 있는데 도커 기본 런타임을 nvidia-docker
로 변경해야 합니다.
/etc/docker/daemon.json
파일을 수정하면 됩니다. 기본적으로 아래와 같은 세팅으로 되어있습니다.
1
2
3
4
5
6
7
8
9
$ cat /etc/docker/daemon.json
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
여기에 default 설정을 추가해줍니다.
1
2
3
4
5
6
7
8
9
10
$ cat /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
다음으로는 쿠버네티스에서 gpu를 사용하기 위해서 kubectl을 이용해서 nvidia-device-plugin을 설치 합니다. 이부분도 모두의 MLOps, nvidia-plugin에 잘 설명되어 있습니다.
1
$ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.10.0/nvidia-device-plugin.yml
전 이상하게 모두의 MLOps 대로 하면 조회가 안되서 아래처럼 조회 했습니다.
1
2
3
4
5
$ kubectl get daemonset -n kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
calico-node 1 1 1 1 1 kubernetes.io/os=linux 21h
kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 21h
nvidia-device-plugin-daemonset 0 0 0 0 0 <none> 5m18s
desired =0
으로 되어 있는데 이상해서 찾아보니 조건이 다음과 같습니다.
Prerequisites
The list of prerequisites for running the NVIDIA device plugin is described below:
NVIDIA drivers ~= 384.81
nvidia-docker version > 2.0 (see how to install and it’s prerequisites)
docker configured with nvidia as the default runtime.
Kubernetes version >= 1.10 {: .prompt-info }
RTX3060 을 사용중이라 드라이버 버전을 만족하지 못하는것으로 아는데.. 이부분은 다음에 다시 살펴 보겠습니다.
더 자세한 설정법은 NVIDIA/k8s-device-plugin에서 확인이 가능합니다.