当AI遇上K8S:使用Rancher安装机器学习必备工具JupyterHub

Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境。本文将详细介绍如何使用Rancher安装JupyterHub来为数据科学和机器学习开发创建可扩展的工作区。
 



本文来自 Rancher Labs
 
人工智能(AI)和机器学习(ML)正在成为技术领域的关键差异化因素。从本质上讲,人工智能和机器学习都是计算量巨大的工作负载,它们需要一流的分布式计算环境才能够蓬勃发展。因此,AI和ML为Kubernetes提供了一个完美的用例,他们能够最大化展现Kubernetes可以运行大量工作负载的特点。

什么是JupyterHub?

Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境。JupyterHub是一个多用户数据探索工具,通常是数据科学和机器学习研究与开发的关键工具。它为工程师、科学家、研究人员和学生提供了云或数据中心的计算能力,同时仍然像本地开发环境一样易于使用。本质上,JupyterHub使用户可以访问计算环境和资源,而不会给他们增加安装和维护任务的负担。用户可以在工作区中使用共享资源,系统管理员会对其进行有效管理。

在AI/ML工作负载中使用Kubernetes

Kubernetes非常擅长让我们利用大型分布式计算环境。因为其声明式设计和基于发现的服务器寻址方法,所以将计算资源应用于工作负载很容易。通常在AI/ML工作负载中,工程师或研究人员需要分配更多的资源。而Kubernetes让在物理基础架构之间迁移工作负载更加可行。在本文中,我们将展示如何使用Rancher安装JupyterHub。

使用Rancher安装JupyterHub

首先,假设我们在Rancher环境中拥有现代化的Kubernetes部署。在本文发布时,Kubernetes的稳定版本是1.16。对于JupyterHub来说,其中一个前期准备是持久化存储,所以你将需要思考如何在这个集群中提供它。出于演示的目的,我们可以使用Rancher Catalog中包含的实验性NFS提供程序来提供持久化存储。点开App Catalog并选择【启动】。然后搜索NFS提供程序。保留默认设置,然后单击屏幕底部的【启动】。如果你已经有持久化存储的解决方案,也可以直接使用它。
 

导航到Rancher App Catalog
 

搜索NFS提供程序
 

启动NFS提供程序
 
现在我们已经有了存储提供程序并且定义了默认存储类,我们可以继续部署应用程序组件。我们将使用Helm3来完成这一操作。查看helm官方文档(https://helm.sh/docs/intro/install/ ),在你的电脑上安装helm3客户端。另外,你也可以使用Rancher Catalog来部署helm chart,而无需任何其他工具。需要确保将repo添加到Rancher catalog中。

在我们使用helm之前,我们需要为应用程序创建一个命名空间。在Rancher UI中,进入集群并选择顶端菜单栏的【项目/命名空间】。你可以为JupyterHub创建一个新的命名空间。例如,我们将命名空间称为“jhub“。请注意此名称,因为我们将之后会使用。
 

创建一个命名空间
 
接下来,我们可以为将要使用的JupyterHub Chart添加Helm repo。如果使用的是Rancher catalog,你需要在UI上完成此操作而不是Helm CLI:

helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
helm repo update

然后,让我们创建一个config文件,其中包含了我们要与此chart一起使用的设置。我们将该文件命名为config.yaml:

proxy:
  secretToken: "<secret token>"
ingress:
  enabled: true
  hosts:
    - <host name>

让我们替换几个项目,使它们是唯一的。用以下输出替换secretToken:

openssl rand -hex 32

并替换为你打算用来访问JyupiterHub UI的可解析DNS名称。

有了配置文件之后,就可以安装chart了。我们将引用该配置文件,因此请确保该文件存在你当前的工作目录中:

RELEASE=jhub
NAMESPACE=jhub
helm upgrade --install $RELEASE jupyterhub/jupyterhub   --namespace $NAMESPACE    --version=0.8.2   --values config.yaml

Helm现在应该部署所需的组件。这将需要一些时间,但是最终你应该能够通过之前设置的主机名访问UI。你也可以通过转到Rancher UI中的“工作负载“选项卡来检查状态。当我们尝试在浏览器中设置的主机名时,它将显示以下登录界面:
 

主机名登录界面
 
在撰写本文时,有一个issue是Kubernetes 1.16中的更改导致Jyupiter Hub的代码在尝试与Kuberentes API交互时中断。如果要立即修复,我们可以运行以下patch命令:

kubectl patch deploy -n $NAMESPACE hub --type json --patch ‘[{"op": "replace", "path": "/spec/template/spec/containers/0/command", "value": ["bash", "-c", "\nmkdir -p ~/hotfix\ncp -r /usr/local/lib/python3.6/dist-packages/kubespawner ~/hotfix\nls -R ~/hotfix\npatch ~/hotfix/kubespawner/spawner.py << EOT\n72c72\n<             key=lambda x: x.last_timestamp,\n---\n>             key=lambda x: x.last_timestamp and x.last_timestamp.timestamp() or 0.,\nEOT\n\nPYTHONPATH=$HOME/hotfix jupyterhub --config /srv/jupyterhub_config.py --upgrade-db\n"]}]‘

你现在已经在Rancher上部署了可以正常工作的JupyterHub环境。默认情况下,JupyterHub使用PAM身份验证。因此,可以使用系统上的任何有效Linux用户登录。登录后,我们应该能够创建新的notebook:
 

Jupyter登录界面
 

创建新的notebook
 
另外,你可以查看其他你可能想配置的身份验证选项。例如,你可以使用Github身份验证来允许用户登录并且创建基于他们Github ID的notebook。你选择好一个身份验证的工具之后,需要按照说明更新我们之前创建的config.yml文件,然后重新运行helm upgrade命令。

总 结

在本文中,我们展示了如何使用Rancher安装JupyterHub来为数据科学和机器学习开发创建可扩展的工作区。如果你想要安装功能齐全的JupyterHub安装,你可能还需要考虑其他因素。本文只是向你展示了如何快速搭建一个基础功能的JupyterHub,希望能帮助你快速开启AI旅程!

原文地址:https://blog.51cto.com/12462495/2480298

时间: 2024-08-29 20:41:56

当AI遇上K8S:使用Rancher安装机器学习必备工具JupyterHub的相关文章

关于ubuntu服务器上部署postgresql 以及安装pgadmin4管理工具(web版)

进入目录:cd pgadmin4   source bin/activate     cd pgadmin4-1.6/ 启动pgadmin4:python web/pgAdmin4.py pgadmin登录账号:[email protected] (自己设定) 密码:Ambition!!((自己设定) 数据库:postgres 密码123456 一.ubuntu服务器安装     请参考: http://www.linuxidc.com/Linux/2012-05/60147.html 二.安装

当AI遇上校园 人脸识别应用场景的多种可能-非思丸

证件.门禁卡.钥匙曾经是高校师生出入校园的必备品,如今在越来越多的高校,师生们只需"刷脸"即可轻松自如享受各种服务.除了"刷脸"进校园.进食堂.进寝室等,近期电子科技大学图书馆等高校纷纷采用人脸识别技术应用于图书馆,在智能化图书馆建设上实现率先探索.作为人工智能领域大规模落地的成熟技术,人脸识别已经被越来越多的教育机构认可,用以构建安全智慧化校园,教育行业的"刷脸"时代正在到来. 人脸识别应用校园带来的安全与便捷 当前在电子科技大学图书馆的出入通

当“资讯机器人”遇上“商业智能”,当“AI”遇上“BI”会有怎样的火花?

新技术的诞生,往往是为了更好的服务人类,而这一过程,则离不开商业.何为商业智能?把企业中现有数据转化为知识,帮助企业做出明智的业务经营决策的工具. 人工智能诞生后,在1958年,商业智能马上进入人们的视野.但在过去,商业智能不能给出决策方案,也不能自动处理企业运行过程中遇到的问题. 而到了今天,借助于人工智能与其他相关学科的技术进步,现代商业智能已能在特定场景中实现商业经营的智能化与自动化. 二十一世纪,商业智能之所以能高速发展,很大原因是大数据为商业智能的发展提供了足够的土壤. 随着互联网.移

初识genymotion安装遇上的VirtualBox问题

想必做过Android开发的都讨厌那慢如蜗牛的 eclipse原生Android模拟器吧! 光是启动这个模拟器都得花上两三分钟,慢慢的用起来手机来调试,但那毕竟不是长久之计,也确实不方便,后来知道了genymotion这个模拟器,Genymotion依赖于VirtualBox(著名的开源虚拟机软件,轻巧.好用!),就是说Genymotion跟VirtualBox要一起使用(Genymotion调用了VirtualBox的接口). 在安装过程中总是遇上这样那样的问题,这不刚好遇上了. 1.先码图看

安装Tomcat,配置环境变量时遇上的坑

在安装环境变量时,可能会遇上 The CATALINA_HOME environment variable is not defined correctlyThis environment variable is needed to run this program 这时候要在环境变量里配置好 CATALINA_HOME E:\apache-tomcat-7.0.99 就像这样, 好,再试一遍, 然鹅你会发现还是不行, 第一个点来了,更新完环境变量后,虽然不需要重启电脑,但是需要重启程序,因为你

渗透场景篇--当XSS遇上CSRF

你是否有过这样的经历,你发现了一个xss,但是貌似只能叉自己,输出点只有自己可以看见.这个时候,你会觉得这个xss很鸡肋,当你就此忽略这个漏洞的时候,你可能丢掉一个发出组合技能的机会.    今天我们来介绍一个场景,当xss遇上csrf的时候,是否能打出一套漂亮的组合技能. 实验环境:     ZvulDirll[请用下面我简单修改过的版本]     下载地址:在文章最后面 一.安装:0x00:解压ZVulDrill压缩包,将其放在www目录下,也就是你的网站根目录.0x01.编辑ZVulDri

当数据库遇上云计算 网亿兴云解决方案

数据库遇上云计算 网亿兴云解决方案 [日期:2016-07-21] 来源: 中关村在线  作者: [字体:大 中 小] 人们对数据管理的需求由来已久.1950年,雷明顿兰德公司在"Univac I"计算机上推出了磁带驱动器,每秒可以输入数百条记录.六十年代,计算机开始广泛引用于数据管理,传统的文件系统已经不能满足人们的需要,能够统一管理和共享数据的数据库管理系统应运而生.如今,数据已经不再是简单的储存和管理,基于云的数据库正衍生出越来越多的玩法和应用场景. 数据库遇上云计算 网亿兴云解

当Azure遇上Docker

容器技术现在发展的如火如荼,包括微软也会在下一代操作系统中提供原生支持,个人认为微软的优势在于其拥有成熟的集群工作环境(Nano Server)以及成熟的管理平台(System Center),除此之外还有一系列围绕容器的生态链,比如自动化(PowerShell DSC),比如监控,比如生命周期管理等等.当然目前如果想在Win平台上体验容器的话,除了Docker提供的boot2docker,最"土"的办法就是在Hyper-V里创建一台Linux虚拟机,然后去部署并使用Docker环境.

LoadRunner - 当DiscuzNT遇上了Loadrunner(上) (转发)

当DiscuzNT遇上了Loadrunner(上) DiscuzNT3正式版发布已经有一段时间了,最近半年多来很少再写关于这个产品的技术文章了,一是时间,二是精力有限.不过在正式版发表之后,倒是有 了些功夫,同时我们的一个商业客户在从2.6版本升级到3.0正式版之后,出了一个小插曲,导致不得不退回到2.6版本.因为这个客户的论坛访问量和发帖 量比较大,平时在线人数5000,日发帖量在2-3万左右.所以出了一些性能上的问题,在大并发情况下,服务器响应超时,且在峰值时越发不稳定.之前我在 公司内部用