[개발] 문서 번역/Kubeflow

[Kubeflow Notebooks] Container Images

하하미아 2022. 12. 15. 22:01

Kubeflow 노트북은 기본적으로 세 가지 타입(JupyterLab, RStudio, and Visual Studio Code (code-server))의 노트북을 제공합니다. 그러나 어떠한 웹 베이스의 IDE도 동작이 가능합니다. 노트북 서버는 쿠버네티스 Pod의 컨테이너로써 구동됩니다. 그렇다는 것은 IDE 종류는 사용자가 선택한 도커 이미지에 의해 결정된다는 것을 의미합니다.

Images

수 많은 예제 이미지 가 준비되어 있습니다.

Base Images

이 이미지들은 Kubeflow 노트북 컨테이너를 위한 공통 스타팅 포인트를 제공합니다. 당신의 고유 패키지로 확장하려면 custom images를 참고하세요.

Dockerfile Registry Notes
base https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/base common base image
codeserver https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/codeserver base code-server (Visual Studio Code) image
jupyter https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter base JupyterLab image
rstudio https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/rstudio base RStudio image

Full Images

이 이미지들은 데이터 사이언티스트, ML 엔지니어를 위한 공통 패키지로 구성된 베이스 이미지를 확장한 이미지들입니다.

Dockerfile Registry Notes
codeserver-python https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/codeserver-python code-server (Visual Studio Code) + Conda Python
jupyter-pytorch (CPU) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-pytorch JupyterLab + PyTorch (CPU)
jupyter-pytorch (CUDA) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-pytorch-cuda JupyterLab + PyTorch (CUDA)
jupyter-pytorch-full (CPU) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-pytorch-full JupyterLab + PyTorch (CPU) + common packages
jupyter-pytorch-full (CUDA) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-pytorch-cuda-full JupyterLab + PyTorch (CUDA) + common packages
jupyter-scipy https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-scipy JupyterLab + https://www.scipy.org/ packages
jupyter-tensorflow (CPU) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-tensorflow JupyterLab + TensorFlow (CPU)
jupyter-tensorflow (CUDA) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-tensorflow-cuda JupyterLab + TensorFlow (CUDA)
jupyter-tensorflow-full (CPU) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-tensorflow-full JupyterLab + TensorFlow (CPU) + common packages
jupyter-tensorflow-full (CUDA) https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/jupyter-tensorflow-cuda-full JupyterLab + TensorFlow (CUDA) + common packages
rstudio-tidyverse https://gallery.ecr.aws/j1r0q0g6/notebooks/notebook-servers/rstudio-tidyverse RStudio + Tidyverse

Image Dependency Chart

아래 플로우 차트는 노트북 컨테이너 이미지들이 서로 어떻게 의존하고 있는지를 나타냅니다.

Custom Images

Kubeflow 노트북이 만들어진 후 인스톨된 패키지들은 PVC 디렉터리에 설치되지 않는 한, Pod의 수명만큼만 지속됩니다.

Pod이 리스타트되어도 패키지들의 보존을 보장하려면 아래 조건중 하나가 필요합니다:

  1. 패키지를 포함하는 커스텀 이미지 빌드
  2. PVC 디렉터리에 패키지 인스톨

Image Requirements

Kubeflow 노트북이 컨테이너 이미지로 작동하려면 이미지는 아래와 같아야합니다:

  • 8888 포트에 HTTP 인터페이스를 노출
    • Kubeflow는 URL 경로로 런타임 하는 시점에 NB_PREFIX 환경 변수를 세팅합니다.
    • Kubeflow는 IFrame을 사용하는데, 당신의 어플리케이션의 response 헤더에 Access-Control-Allow-Origin: * 가 있는지 확인해야 합니다.
  • jovyan이라 불리는 사용자로 구동:
    • jovyan의 홈 디렉터리는 /home/jovyan 이어야 합니다.
    • jovyan의 UID는 1000이 되어야 합니다.
  • 빈 PVC를 /home/jovyan에 마운트해서 구동
    • Kubeflow는 Pod 재시작을 넘어 상태를 유지하기 위해 PCV를 /home/jovyan에 마운트합니다.