공부/컴퓨터
[Kubernetes] k3s에서 컨테이너를 띄웠는데 왜 GPU를 못 쓰지?
찬
2021. 2. 22. 23:22
반응형
k3s에서 GPU를 왜 못쓰지?
- docker를 설치하고, nvidiai-docker를 설치하고, k3s를 설치 했다.
- docker를 이용해서 GPU를 사용하는 컨테이너를 띄웠을때는 GPU를 잘 사용하는데...
- kubernetes에서 Pod를 띄우니 GPU를 못 사용하네? 왜 그럴까?
미리 정리하면...
- 조건 : docker 설치. nvidia-docker 설치. k3s 설치
- 문제 : Kubernetes에서 띄운 Pod에서 GPU를 사용하지 못함.
- 해결 : k3s를 설치하면 기본적으로 containerd 를 사용하게 되어 있음. nvidia-docker를 써야만 GPU를 활용할 수 있음. 즉, k3s의 container runtime을 docker로 변경해야 함.
- k3s 설치시
--docker
옵션 추가 필요 curl -sfL https://get.k3s.io | sh -s - --docker
- k3s 설치시
좀 더 길게 적어 보면
왜 AI 엔진이 뜨지 않을까?
- 오늘 k3s에서 AI 엔진을 띄우려고 했는데, 아무리해도 프로세스가 제대로 안 뜨는것이다.
nvidia-smi
명령을 이용해서 확인해도 python process가 안 뜨고 있었다.docker ps -a
명령어를 쳐 보니.. 엇? container가 하나도 안 떠 있네?
왜 docker 컨테이너가 하나도 없지?
- 확인 결과 k3s를 설치할때 아무런 옵션을 주지 않으면 container runtime을 containerd 를 사용하도록 된다.
- 그러므로
docker ps -a
따위의 명령을 써도, 아무것도 안 떠 있는것처럼 보인 것이다.
k3s의 container runtime을 docker로 변경
- 관련 링크 : https://rancher.com/docs/k3s/latest/en/advanced/
- containerd 에서는 GPU를 사용하도록 설정하지 않았기 때문에, 당근 GPU를 사용할 수 없다.
- 그러므로 GPU를 사용할 수 있도록 설정된 docker 를 k3s의 container runtime으로 사용하도록 설정해야 한다.
- k3s 를 설치할때 container runtime을 docker로 지정해서 설치하면 된다.
- 이 작업 이후
docker ps -a
명령을 쓰면, kubernetes 관련된 많은 container들이 떠 있는것을 확인할 수 있다.
반응형