爲JupyterHub自定義Notebook Images

JupyterHub已經成爲數據探索的最佳工具,並且能夠在Kubernetes中運行,提供託管的、可伸縮的數據分析環境。JupyterHub能夠爲每一個用戶建立獨立的運行環境,在單機環境下運行在不一樣的Anaconda環境(不能擴展),在Kubernetes中,是運行在Docker容器之中的,並且能夠擴展到多個節點。html

Jupyter項目已經提供了一些Docker鏡像,能夠直接使用,也能夠自定義、編譯本身的容器鏡像。node

一、選擇基礎鏡像

這裏我選擇 jupyter/all-spark-notebook:5811dcb711ba 爲基礎鏡像,是由jupyter官方發佈的。git

二、編譯添加本身的軟件包

從新建立一個Dockerfile,而後添加本身的軟件包。github

編譯鏡像,運行:docker

docker build --build-arg "HTTP_PROXY=http://192.168.199.99:9999" -t openthings/databook .

其中,-t 指明鏡像的名稱,可使用--build-arg傳遞臨時參數到容器編譯過程當中,在使用時經過env獲取,如 :apache

ENV HTTP_PROXY ${HTTP_PROXY}

三、配置到Kubernetes

使用docker images查看鏡像openthings/databook是否已經建立成功。框架

  • 若是,是新安裝JupyterHub,進去values.yaml改一下鏡像的版本,而後運行helm安裝便可。
  • 若是,已經安裝完了,能夠直接使用kubectl edit或者在Dashboard裏直接修改deployment的images參數。

四、與Kubeflow中的差別

Kubeflow也採用了JupyterHub/Lab的運行框架,可是啓動jupyternotebook的參數不一樣,所以兩者不能混合使用。但在Kubeflow中能夠採起相似的辦法使用KubeFlow的配置文件從新編譯容器鏡像,而後配置到Kubernetes集羣中使用。工具

相關文章
相關標籤/搜索