K8S 3

K8S 클러스터에서 GPU 사용을 위한 ubuntu 서버 설정(nvidia driver 설치)

GPU 서버들의 CUDA 버전이 낮아, pytorch, tensorflow 등 ML 개발을 위한 프레임워크들의 버전을 올릴 수 없었습니다.K8S 클러스터를 업그레이드 하면서 GPU 서버의 환경설정을 다시 하여 전체적인 버전을 올리기로 결정하였습니다.다만, OS 는 ubuntu 18.04 버전을 그대로 사용하고 있어, 완전 최신버전으로 올릴 순 없었습니다. 전체 작업 목차삭제nvidia-driver 설치cuda 설치cuDNN 설치docker, containerd 설치nvidia-container-toolkit 설치container 서비스 설정 & K8S 설정K8S 클러스터에서 cuda 인식을 위한 작업작업 전 배경지식작업 전, nvidia GPU 서버에 설치되는 환경들에 대한 이해가 필요합니다. 이해를 돕..

K8S 환경의 pod에서 nvidia GPU driver가 갑자기 인식되지 않는 현상

K8S 1.30 버전의 클러스터를 구축한 뒤, jupyter notebook 을 jupyterhub helm chart 로 제공하고 있습니다.클러스터에는 12개의 GPU 서버들이 있는데, jupyterhub 의 옵션에서 GPU 옵션을 선택해 사용할 수 있게 해 놓았습니다. 그런데 사용자들이 jupyter notebook 을 GPU 옵션으로 생성해 사용하다보면,갑작스럽게 nvidia GPU 인식이 끊기는 현상이 발생하였습니다. nvidia-smi 명령어가 실행되지 않는 notebook 의 로그를 확인해보니, 아래와 같은 에러가 발생하였습니다.containerd Failed to initialize NVML: Unknown Error 확인해봤을 때 notebook 컨테이너에서는 "Failed to initi..

[K8S 1.24 버전 업그레이드] dockershim vs containerd

최근 운영을 담당하고 있는 EKS 버전의 지원이 만료되어 가면서 1.24 버전으로 업그레이드 하기로 결정되었습니다. 이를 위해 어떤 부분이 달라지는지 조사하다가 개념적으로 헷갈렸던 dockershim 과 containerd 를 정리하였습니다. 쿠버네티스 구조의 변화 * 출처 : 조훈님 유튜브(https://www.youtube.com/watch?v=gQmauyVqGPs) 리눅스가 발전하면서 cgroup(control group) 이 나와 사용자들은 CPU 시간, 메모리, 네트워크 대역폭 같은 자원등을 프로세스 간 할당할 수 있는 방법이 나왔고, namespace 를 통해 시스템의 리소스(PID, 네트워크 등)를 분리해서 실행할 수 있게 되었습니다. 이에 따라 컨테이너 기술이 발전하게 되었고, 최근까지도 ..