JupyterHub on Kubernetes部署与应用指南
1、简介
Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境,JupyterLab是一个新的数据分析UI界面。
Jupyter和JupyterHub都支持conda和Anaconda运行环境管理工具。JupyterHub可以支持Kubernetes集群环境下的运行,而且现在可以通过Helm包管理工具进行部署。
2、快速安装
- 参考配置和一些脚本工具在 github.com/openthings/kubernetes-tools/jupyter 。
- 下面的helm安装方法中,helm .... -f config.yaml会出错,报缺失参数错误。
- 直接复制Helm Chart到自己的目录,然后修改。
- 修改proxy:secretToken:为执行 openssl rand -hex 32产生的字符串,带引号。
- 在values.yaml文件中,搜索“storageClass”,有两处,改为"nfs"或其它的存储引擎。
- 修改singleuser:storage:capacity:为 1Gi,以免=耗用资源过多。
- 如果需要持久化,参考:Kubernetes搭建NFS原生服务 。
- 所有的image的tag改为具体的版本号。目前安装时自动替换占位符功能不可用。
- 参考:github.com/openthings/kubernetes-tools/jupyter/getimages.sh
- 最好使用上面的脚本事先下载,以免安装时等待时间过长或超时退出。
- 修改proxy:service: type:为 NodePort。
- 运行安装:
- helm install ./jupyterhub --version=v0.6 --name=jupyter --namespace=jupyter
- 运行 kubectl --namespace=jupyter get svc proxy-public,查看端口。
- 显示类似PORT(S)80:32600/TCP,浏览器打开 localhost:32600即可。
快速独立测试Jupyter容器镜像:
docker run --rm -p 10000:8888 -e JUPYTER_LAB_ENABLE=yes -v "$PWD":/home/jovyan/work jupyter/datascience-notebook:e5c5a7d3e52d
- 授予账号和访问根权限,加参数:--user root -e GRANT_SUDO=yes
- 更多参数:https://jupyter-docker-stacks.readthedocs.io/en/latest/using/common.html
3、详细安装步骤
- JupyterHub on Kubernetes-- Helm Chart简介
- JupyterHub on Kubernetes-Helm安装
- JupyterHub on Kubernetes--项目简介
- JupyterHub on Kubernetes--部署指南
- JupyterHub on Kubernetes--定制用户环境
- JupyterHub on Kubernetes-容器存储
4、Jupyter参考资料
- JupyterHub官方文档,JupyterHub documentation
- JupyterHub开发源码,JupyterHub development repository
- JupyterHub Helm项目,JupyterHub Helm Chart development repository
- JupyterLab,http://jupyterlab.readthedocs.io/en/stable/index.html
- Jupyterlab-hub,https://github.com/jupyterhub/jupyterlab-hub#installation
- Anaconda,https://www.anaconda.com
- JupyterHub绘图功能,JupyterHub on Kubernetes绘图支持软件。
- Jupyter Notebook
- Jupyter platform, on ReadTheDocs
- The Jupyter Notebook Viewer
- repo2docker documentation
- Jupyter Notebook Python, Scala, R, Spark, Mesos
- Pandas快速入门
- IPython的Magics魔法操作符
- Jupyter的远程授权问题
- 在python中使用ggplot绘图库
- 基于Docker+Jupyter+Python的科学计算环境
- Keras+Tensorflow+Jupyter 安装在Docker容器中运行
- Keras+Tensorflow部署在Jupyter+Spark+Docker教程
- Jupyter与空间分析
5、JupyterLab启用
JupyterLab是基于notebook的新UI,界面如下:
在JupyterHub中启用JupyterLab,步骤非常简单:
- 在Helm 配置文件(values.yaml)加入JupyterLab的参数:
hub:
extraEnv: JUPYTER_ENABLE_LAB: 1
extraConfig:
c.KubeSpawner.cmd = ['jupyter-labhub']
- 修改启动时的路径为JupyterLab(“/lab”,进入经典界面设为“tree”),修改Helm配置文件:
singleuser: defaultUrl: "/lab"
然后,运行helm的更新程序:
helm upgrade jupyter ./jupyterhub
其中,jupyter为要更新的Helm list中的名称,./jupyterhub为当前配置文件helm chart的路径。
需要到浏览器界面stop server,然后start server,就成为新的jupyter运行环境了。