机器学习平台系列(二) - 初探 JupyterHub:虚拟机环境下安装、部署以及单机环境下的多租户

目录

1. 简介

2. 环境版本

3. 安装步骤

3.1 安装虚拟机

3.2 安装 JupyterHub

4. 启动

5.新增用户

5.1 新增操作系统用户

5.2 JupyterHub新增用户

5.3 使用新用户登录

6. 参考链接


在上篇的文章中,我简单介绍了 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

 

备注:

 

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值