当ai遇上k8s:使用rancher安装机器学习必备工具jupyterhub(代码片段)

author author     2023-04-11     555

关键词:

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", "
mkdir -p ~/hotfix
cp -r /usr/local/lib/python3.6/dist-packages/kubespawner ~/hotfix
ls -R ~/hotfix
patch ~/hotfix/kubespawner/spawner.py << EOT
72c72
<             key=lambda x: x.last_timestamp,
---
>             key=lambda x: x.last_timestamp and x.last_timestamp.timestamp() or 0.,
EOT

PYTHONPATH=$HOME/hotfix jupyterhub --config /srv/jupyterhub_config.py --upgrade-db
"]]‘

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

Jupyter登录界面
 
技术图片

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

总 结

 

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

k8s集群问题记录

...k8s集群问题记录k8s学习方案问题解决思路主要学习路径:rancher(k8s)->rke->helm->kubectl->k8s常见命令总结:怎么解决简单就怎么解决例如rancher的安装使用helm安装有问题,官网有bug就使用docker的方式安装一样简便,只是个客户... 查看详情

rancher运维-从零开始学习|rke部署k8s|容器管理(代码片段)

Rancher运维-从零开始学习|RKE部署K8S|容器管理一、概述①基础设施编排②容器编排与调度③应用商店④企业级权限管理二、RKE①REK1和RKE2的区别三、RKE1部署K8S1.1基础环境部署①SSH用户必须是节点上docker用户组的成员②禁用交换功... 查看详情

rancher运维-从零开始学习|rke部署k8s|容器管理(代码片段)

Rancher运维-从零开始学习|RKE部署K8S|容器管理一、概述①基础设施编排②容器编排与调度③应用商店④企业级权限管理二、RKE①REK1和RKE2的区别三、RKE1部署K8S1.1基础环境部署①SSH用户必须是节点上docker用户组的成员②禁用交换功... 查看详情

rancher2.6部署k8s集群示例(代码片段)

...1f44d;收藏⭐留言💬目录1计算机准备2安装前准备3部署rancher4配置rancher5创建k8s集群6rancer2.6的更新点rancher2.6已经发布一段时间,与2.5还是有不少变动,而且目前只有英语文档。为了方便大家顺利使用,在此演示下ran... 查看详情

[当人工智能遇上安全]3.安全领域中的机器学习及机器学习恶意请求识别案例分享(代码片段)

...f0c;您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好... 查看详情

秒搭kubernetes之使用rancher

Rancher在接触Docker和K8s的前阶段就耳闻目睹到Rancher,但是没有进一步接触过。直到将K8s搭建完成。才进一步了学习与实践Rancher。Rancher是简便易用的容器管理。其中Rancher对Kubernetes的支持与维护特别用心,使其在生产环境中的基础... 查看详情

[当人工智能遇上安全]4.基于机器学习的恶意代码检测技术详解(代码片段)

...f0c;您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好... 查看详情

[当人工智能遇上安全]5.基于机器学习算法的主机恶意代码识别研究(代码片段)

...f0c;您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好... 查看详情

64k8s+rancher+karmada容器化部署

文章目录一、什么是rancher二、为什么使用rancher三、Rancher与[k8s](https://so.csdn.net/so/search?q=k8s&spm=1001.2101.3001.7020)的关系及区别1、Rancher具有的优势三、rancher安装1、细部介绍四、图形化操作1、执行2、图形化操作1、进行客户机登... 查看详情

rancher+k8s部署手册

...建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等。Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没法使用。kubeadm是Kubernetes官方提供的k8s部署工具,不过不支持HA,且支持的d... 查看详情

rancher运维-从零开始学习|rke部署k8s|容器管理(代码片段)

Rancher运维-从零开始学习|RKE部署K8S|容器管理一、概述①基础设施编排②容器编排与调度③应用商店④企业级权限管理二、RKE①REK1和RKE2的区别三、RKE1部署K8S1.1基础环境部署①SSH用户必须是节点上docker用户组的成员②禁用交换功... 查看详情

如何通过rancher部署k8s集群(代码片段)

如何通过rancher部署k8s集群1前言2安装前准备2.1准备计算机2.2环境设置2.2.1升级Linux内核到最新版2.2.2设置时间同步2.2.3hostname设置2.2.4hosts设置2.2.5关闭防火墙2.2.6关闭selinux2.2.7安装Docker3安装rancher4配置Rancher5创建k8s集群1前言最近的工... 查看详情

使用k3s减少k8s成本

...后台的数据爬虫以及数据服务器资源都部署在k8s上,使用rancher搭建。在不影响太多性能的情况下尽量选择最低配置的机器。对于内存不足的情况适当的使用交换文件代替(swap)。整个集群大致结构如下:一个月的开销大概在60... 查看详情

从 Rancher 目录安装 k8s 后 kubelet 不健康

】从Rancher目录安装k8s后kubelet不健康【英文标题】:kubeletwasunhealthyafterinstallk8sfromRanchercatalog【发布时间】:2018-05-1118:12:24【问题描述】:有三台主机来运行Rancher集群。牧场主:1.6.10Kubernetes:1.7.7从master主机上的目录安装k8s。为... 查看详情

ai实现语音文字处理,paddlespeech项目安装使用|机器学习(代码片段)

目录前言环境安装1、conda安装Python3.9虚拟环境2、安装VisualStudio20193、安装requirements.txt4、安装paddlepaddle和paddlespeech5、nltk_data下载项目验证tts语音合成asr语音识别标点恢复总结前言这段时间一直在研究飞浆平台,最近试了试Padd... 查看详情

64云原生容器化

文章目录一、什么是rancher二、为什么使用rancher三、Rancher与[k8s](https://so.csdn.net/so/search?q=k8s&spm=1001.2101.3001.7020)的关系及区别1、Rancher具有的优势三、rancher安装1、细部介绍四、图形化操作1、执行2、图形化操作1、进行客户机登... 查看详情

轻松扩展机器学习能力:如何在rancher上安装kubeflow(代码片段)

...sp;顾名思义,Kubeflow应该部署在Kubernetes上,既然你是通过Rancher的平台阅读到这篇文章,那么你大概率已经在某个地方部署了Kubernetes集群。 值得注意的是,Kubeflow中的“flow”并不是表示T 查看详情

rancher2.2.2-ha部署高可用k8s集群(代码片段)

对于生产环境,需以高可用的配置安装Rancher,确保用户始终可以访问RancherServer。当安装在Kubernetes集群中时,Rancher将与集群的etcd集成,并利用Kubernetes调度实现高可用。为确保高可用,本文所部署的Kubernetes集群将专用于运行Ranch... 查看详情