JupyterHub on Kubernetes部署与应用指南

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

JupyterHub on Kubernetes部署与应用指南

1、简介

Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境,JupyterLab是一个新的数据分析UI界面。

JupyterHub on Kubernetes部署与应用指南_第1张图片

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
    • conda命令参考,https://conda.io/docs/commands.html
    • Conda-Anaconda的虚拟环境和包管理功能
  • 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与空间分析
    • GDAL的Python调用-Notebook分享
    • Shapely地理空间几何对象库的安装与使用
    • Fiona地理数据引擎Python库
    • Fiona地理数据引擎,使用手册
    • 基于GIScript和GeoIP进行访问网址的地理定位分析

5、JupyterLab启用

JupyterLab是基于notebook的新UI,界面如下:

JupyterHub on Kubernetes部署与应用指南_第2张图片

在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运行环境了。

转载于:https://my.oschina.net/u/2306127/blog/1837196

你可能感兴趣的:(JupyterHub on Kubernetes部署与应用指南)