为JupyterHub自定义Notebook Images

原创
2018/09/03 13:26
阅读数 2.7K

JupyterHub已经成为数据探索的最佳工具,而且可以在Kubernetes中运行,提供托管的、可伸缩的数据分析环境。JupyterHub可以为每个用户创建独立的运行环境,在单机环境下运行在不同的Anaconda环境(不能扩展),在Kubernetes中,是运行在Docker容器之中的,而且可以扩展到多个节点。

Jupyter项目已经提供了一些Docker镜像,可以直接使用,也可以自定义、编译自己的容器镜像。

1、选择基础镜像

这里我选择 jupyter/all-spark-notebook:5811dcb711ba 为基础镜像,是由jupyter官方发布的。

2、编译添加自己的软件包

重新创建一个Dockerfile,然后添加自己的软件包。

编译镜像,运行:

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

其中,-t 指明镜像的名称,可以使用--build-arg传递临时参数到容器编译过程中,在使用时通过env获取,如 :

ENV HTTP_PROXY ${HTTP_PROXY}

3、配置到Kubernetes

使用docker images查看镜像openthings/databook是否已经创建成功。

  • 如果,是新安装JupyterHub,进去values.yaml改一下镜像的版本,然后运行helm安装即可。
  • 如果,已经安装完了,可以直接使用kubectl edit或者在Dashboard里直接修改deployment的images参数。

4、与Kubeflow中的差异

Kubeflow也采用了JupyterHub/Lab的运行框架,但是启动jupyternotebook的参数不同,因此二者不能混合使用。但在Kubeflow中可以采取类似的办法使用KubeFlow的配置文件重新编译容器镜像,然后配置到Kubernetes集群中使用。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部