为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集群中使用。工具

相关文章
相关标签/搜索