본문 바로가기

DKE/Kubernetes

[Kubeflow] Jupyter jovyan 사용자를 sudo 그룹에 추가하기 / 2023.06.16

kubeflow에서 jupyter를 사용할 때 사용자인 jovyan은 sudo 권한이 없다

따라서 jovyan을 sudo그룹에 추가하는 custom image를 생성해서 jupyter를 생성해보자

Step 1. Dockerfile 작성

jupyter notebook Dockerfile은 아래 github에서 확인할 수 있다

https://github.com/kubeflow/kubeflow/tree/master/components/example-notebook-servers

 

GitHub - kubeflow/kubeflow: Machine Learning Toolkit for Kubernetes

Machine Learning Toolkit for Kubernetes. Contribute to kubeflow/kubeflow development by creating an account on GitHub.

github.com

먼저, Dockerfile을 작성하자

sudo vim Dockerfile

# 아래 코드 복사
# tensorflow, gpu 사용
FROM public.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-tensorflow-cuda-full:v1.5.0
USER root

RUN rm /etc/apt/sources.list.d/cuda.list \
  && rm /etc/apt/sources.list.d/nvidia-ml.list

RUN apt-get update && apt-get install -y --no-install-recommends \
          sudo \
          apt-utils \
  && usermod -aG sudo ${NB_USER} \
  && echo ${NB_USER}:${NB_USER} | chpasswd \
  && echo "${NB_USER} ALL=(root) NOPASSWD:SETENV: /init" >> /etc/sudoers

USER jovyan

Step 2. docker build

sudo docker build -t <dockerhub>/juypter_tf_gpu:<tag> .

Step 3. docker push

sudo docker push <dockerhub>/jupyter_tf_gpu:<tag>

Step 4. custom image로 kubeflow에서 jupyter 생성하기

terminal에 들어가서 sudo su 실행 -> pwd: jovyan

sudo 권한이 생긴것을 확인할 수 있다!!

 

Reference:

https://www.youtube.com/watch?v=dlGulnj9-TY&t=528s