3.3. JupyterHub 介绍¶
JupyterHub 是为多个用户提供 Jupyter Notebook 的集成服务系统。 JupyterHub 的用户环境彼此隔离,无法相互共享,每个用户需要单独配置自己的 Python/Conda 环境等。
JupyterHub 与 Jupyter Notebook/Lab 并非直接包含关系, JupyterHub 初始安装不包含 Jupyter Notebook/Lab,二者甚至可以不在一台服务器上, 需要各自搭建后,通过配置组合在一起。
JupyterHub、Jupyter Notebook/Lab 分别有自己的仓库、文档、技术栈(如:除 Python、H5 外, JupyterHub 涉及 NodeJS,JupyterLab 涉及 TypeScript)。 因此,JupyterHub 与 Jupyter Notebook/Lab 的接口、主题、插件等定制开发也是分别独立的项目范畴。
JupyterHub 支持第三方 Oath 认证登录,需要另外开发配置。 常见的包括 GitHub、GitLab、Google 等(主要针对编程群体,因此不包括 Facebook、Twitter)。
JupyterHub 下又分为三个项目:JupyterHub、TLJH、Z2JH, 每个项目都有各自的文档系统、Git仓库、环境配置。 每个项目的环境搭建方式大概又各可分为 3 种方式:Conda/Pip 安装、Docker 安装、Dev 环境安装。 对应到开发,要根据具体需求确定一个方向,搭建配置指定的环境项目。
JupyterHub、TLJH、Z2JH 的应用场景各有不同:
JupyterHub:原始系统。环境搭建配置方式灵活、可控性强,相应出错几率相对较大;
TLJH(The Littlest JupyterHub):发行版本。把 JupyterHub 搭建在一台服务器上,支持 1 ~ 50 个用户(github 描述为 1 ~ 50,文档描述为 1 ~ 100 );
Z2JH(Zero to JupyterHub):发行版本。针对 100 以上用户量,安全稳定性要求高,计划应用 Docker 容器,需要搭建 Kubernetes 集群,对运维水平要求高。