본문 바로가기

ML & AI/kubeflow

MiniKF - Jupyter Notebook 커스텀(ML)

기존에 만들어 본 MiniKF - Jupyter Notebook 커스텀(기본) 이미지를 수정하여, kubeflow fairing과 pipeline 기능을 사용할 수 있는 Jupyter Notebook 을 만든다.

 

  • Fairing : Kubeflow가 설치된 환경에서 머신러닝(딥러닝) 모델의 학습과 배포를 지원
  • Pipeline : Kubeflow 환경에서 머신러닝(딥러닝) 학습에 필요한 End-to-End Workflow 구성을 지원 
1. Dockerfile 생성
FROM python:3.6 tensorflow/tensorflow:2.1.0-py3

WORKDIR /home/vacance 
USER root 

RUN pip install jupyter -U && pip install jupyterlab 

RUN apt-get update && apt-get install -yq --no-install-recommends \
       apt-transport-https \ 
       build-essential \ 
       bzip2 \ 
       ca-certificates \ 
       curl \ 
       g++ \ 
       git \ 
       gnupg \ 
       graphviz \ 
       locales \ 
       lsb-release \ 
       openssh-client \ 
       sudo \ 
       unzip \ 
       vim \ 
       wget \ 
       zip \ 
       emacs \ 
       python3-pip \ 
       python3-dev \ 
       python3-setuptools \ 
       && apt-get clean && \ 
       rm -rf /var/lib/apt/lists/* 

RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - 

RUN echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list 

RUN apt-get update 

RUN apt-get install -y kubectl 

RUN pip install kubeflow-fairing==0.7.2
RUN pip install kfp==0.5
RUN pip install kfserving==0.2.2.1
RUN pip install kubeflow-kale
RUN pip install dill

RUN pip install jupyterlab && \ jupyter serverextension enable --py jupyterlab --sys-prefix 

ARG NB_USER=vacance 
EXPOSE 8888 ENV 

NB_USER $NB_USER 
ENV NB_UID=1000 
ENV HOME /home/$NB_USER 
ENV NB_PREFIX / 

CMD ["sh", "-c", "jupyter lab --notebook-dir=/home/vacance --ip=0.0.0.0 --no-browser --allow-root --port=8888 --LabApp.token='' --LabApp.password='' --LabApp.allow_origin='*' --LabApp.base_url=${NB_PREFIX}"]

붉은색으로 표시한 부분이 기존의 Dockerfile을 수정, 추가한 내용이다. Build와 Push를 수행하여 Repository에 이미지를 등록하면 Kubeflow Central Dashboard에서 커스텀 노트북을 생성할 수 있다.

2. 커스텀 노트북 실행

Central Dashboard에서 Notebook Server로 이동하여 Python3 기반의 Notebook을 실행한다.

노트북 실행 화면


이제 이 커스텀 노트북을 사용하여 적당한 데이터-셋을 선정해서 Machin Learning Workflow를 만들고, Kubeflow의 컴포넌트 동작을 확인해 봐야 겠다.