쿠버네티스 입문기 (3)
포스트
취소

쿠버네티스 입문기 (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에서 확인이 가능합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

쿠버네티스 입문기 (2)

python package 만들어서 사용하기 (1)