当AI遇上K8S:使用Rancher安装机器学习必备工具JupyterHub
RancherLabs 人气:3
Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境。本文将详细介绍如何使用Rancher安装JupyterHub来为数据科学和机器学习开发创建可扩展的工作区。
![](https://oscimg.oschina.net/oscnet/up-136b3854472151e696825f205c7ebb182e5.png)
------------
本文来自 [Rancher Labs](https://mp.weixin.qq.com/s/87OUf7EZM2ESHgtm-qobPw "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提供程序。保留默认设置,然后单击屏幕底部的【启动】。如果你已经有持久化存储的解决方案,也可以直接使用它。
![](https://oscimg.oschina.net/oscnet/up-d83974cc85efe12ccfb71f34a05b8e0f0b2.png)
*导航到Rancher App Catalog*
![](https://oscimg.oschina.net/oscnet/up-d91b99f528398d6b03aad237bb31ae5787b.png)
*搜索NFS提供程序*
![](https://oscimg.oschina.net/oscnet/up-ad2300e0cd501e620b598b9f44058d6cd0e.png)
*启动NFS提供程序*
现在我们已经有了存储提供程序并且定义了默认存储类,我们可以继续部署应用程序组件。我们将使用Helm3来完成这一操作。查看helm官方文档(https://helm.shhttps://img.qb5200.com/download-x/docs/intro/install/ ),在你的电脑上安装helm3客户端。另外,你也可以使用Rancher Catalog来部署helm chart,而无需任何其他工具。需要确保将repo添加到Rancher catalog中。
在我们使用helm之前,我们需要为应用程序创建一个命名空间。在Rancher UI中,进入集群并选择顶端菜单栏的【项目/命名空间】。你可以为JupyterHub创建一个新的命名空间。例如,我们将命名空间称为“jhub“。请注意此名称,因为我们将之后会使用。
![](https://oscimg.oschina.net/oscnet/up-ac510ff52b303e7468d0492da6f6e76b57d.png)
*创建一个命名空间*
接下来,我们可以为将要使用的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: "
加载全部内容