机器学习平台系列(二) - 初探 JupyterHub:虚拟机环境下安装、部署以及单机环境下的多租户
目录1. 简介2. 环境版本3. 安装步骤3.1 安装虚拟机3.2 安装 JupyterHub4. 启动5.新增用户5.1 新增操作系统用户5.2 JupyterHub新增用户5.3 使用新用户登录6. 参考链接在上篇的文章中,我简单介绍了 Jupyter Notebook 的认证机制,其目的是想探寻 Jupyter Notebook 自身是否有多租...
·
目录
在上篇的文章中,我简单介绍了 Jupyter Notebook 的认证机制,其目的是想探寻 Jupyter Notebook 自身是否有多租户、资源隔离等功能,结论是目前还不支持。所以,本篇文章将重心转移到专门的项目 JupyterHub,对它做下初探。
1. 简介
官网以及其他博文中对它的介绍很多,不过出于初学以及总结目的,我在此篇文章中会记录一些问题、一些思考。
- JupyterHub 可以运行在 云 上或者 本地硬件 上,出于快速上手目的,暂且运行在单独的虚拟机上。
- JupyterHub 可以支持多种 Kernel,Kernel 在这里指可以运行 Python代码 (不限于)的程序。
- JupyterHub 扩展性支持依赖了容器技术,并且可以和 K8S 集成,进而支持多租户场景需求。文章先不讨论和 K8S 的集成。
2. 环境版本
- Win10 下 VMWare 版本:VMware-workstation-full-14.1.3-9474260
- 虚拟机镜像版本:ubuntu-18.04.1-desktop-amd64.iso
备注:
- VMWare 版本升级到 14.1 以上版本,下载地址为: http://www.zdfans.com/html/5928.html
- Ubuntu 18.04 版本,镜像下载地址为: https://ubuntu.com/#download
3. 安装步骤
3.1 安装虚拟机
安装必备:
apt install net-tools
apt-get install openssh-server openssh-client
apt install lrzsz
apt install vim
使用宿主机代理:
export proxyserveraddr=xx.xx.xx.xx
export proxyserverport=xx
export HTTP_PROXY="http://$proxyserveraddr:$proxyserverport/"
export HTTPS_PROXY="https://$proxyserveraddr:$proxyserverport/"
export FTP_PROXY="ftp://$proxyserveraddr:$proxyserverport/"
export SOCKS_PROXY="socks://$proxyserveraddr:$proxyserverport/"
export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;"
export http_proxy="http://$proxyserveraddr:$proxyserverport/"
export https_proxy="https://$proxyserveraddr:$proxyserverport/"
export ftp_proxy="ftp://$proxyserveraddr:$proxyserverport/"
export socks_proxy="socks://$proxyserveraddr:$proxyserverport/"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;"
重点:
- 安装虚拟机过程中如果遇到 vmci 问题,将 xxx.vmx 文件 "vmci0.present" 属性修改成 "FALSE"即可
- 安装虚拟机过程中如果出现黑屏,在宿主机上以管理员身份打开终端,使用 "netsh winsock reset" 命令重置网络
3.2 安装 JupyterHub
所在操作需要在 root 用户下进行,否则后续会失败。
# 安装 pip3,并使用 pip3 安装 notebook、jupyterhub
apt install python3-pip
pip3 install jupyterhub notebook -i https://pypi.douban.com/simple/
# 使用 npm 安装 http-proxy
apt install npm
npm install -g configurable-http-proxy
# 测试安装
jupyterhub -h
configurable-http-proxy -h
# 生成配置文件
mkdir -p /etc/jupyterhub
jupyterhub --generate-config -f /etc/jupyterhub/jupyterhub_config.py
# 新增配置属性
c.JupyterHub.ip = '192.168.23.134'
c.JupyterHub.port = 8888
c.Spawner.ip = '127.0.0.1'
c.PAMAuthenticator.encoding = 'utf8'
c.Authenticator.whitelist = {'root','tzx'}
c.LocalAuthenticator.create_system_users = True
c.Authenticator.admin_users = {'root', 'tzx'}
c.JupyterHub.authenticator_class = 'dummyauthenticator.DummyAuthenticator'
c.JupyterHub.statsd_prefix = 'jupyterhub'
# 搜索spawner.py所在目录
vim /usr/local/lib/python3.6/dist-packages/jupyterhub/spawner.py
# 在 spawner.py 中搜索 get_args 后,新增如下一行,实现 root 访问和登录
args.append('--allow-root')
# 安装插件
pip3 install jupyterhub-dummyauthenticator -i https://pypi.douban.com/simple/
4. 启动
jupyterhub --config=/etc/jupyterhub/jupyterhub_config.py --no-ssl
5.新增用户
5.1 新增操作系统用户
useradd -m vagrant -d /home/vagrant -s /bin/bash
passwd vagrant
5.2 JupyterHub新增用户
5.3 使用新用户登录
6. 参考链接
更多推荐
所有评论(0)