當(dāng)AI遇上K8S:使用Rancher安裝機(jī)器學(xué)習(xí)必備工具JupyterHub

Jupyter Notebook是用于科學(xué)數(shù)據(jù)分析的利器膀曾,JupyterHub可以在服務(wù)器環(huán)境下為多個(gè)用戶托管Jupyter運(yùn)行環(huán)境县爬。本文將詳細(xì)介紹如何使用Rancher安裝JupyterHub來為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)開發(fā)創(chuàng)建可擴(kuò)展的工作區(qū)。

image

本文來自 Rancher Labs

人工智能(AI)和機(jī)器學(xué)習(xí)(ML)正在成為技術(shù)領(lǐng)域的關(guān)鍵差異化因素添谊。從本質(zhì)上講财喳,人工智能和機(jī)器學(xué)習(xí)都是計(jì)算量巨大的工作負(fù)載桑寨,它們需要一流的分布式計(jì)算環(huán)境才能夠蓬勃發(fā)展允扇。因此,AI和ML為Kubernetes提供了一個(gè)完美的用例仰禽,他們能夠最大化展現(xiàn)Kubernetes可以運(yùn)行大量工作負(fù)載的特點(diǎn)喊废。

什么是JupyterHub祝高?

Jupyter Notebook是用于科學(xué)數(shù)據(jù)分析的利器,JupyterHub可以在服務(wù)器環(huán)境下為多個(gè)用戶托管Jupyter運(yùn)行環(huán)境污筷。JupyterHub是一個(gè)多用戶數(shù)據(jù)探索工具工闺,通常是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)研究與開發(fā)的關(guān)鍵工具。它為工程師瓣蛀、科學(xué)家陆蟆、研究人員和學(xué)生提供了云或數(shù)據(jù)中心的計(jì)算能力,同時(shí)仍然像本地開發(fā)環(huán)境一樣易于使用惋增。本質(zhì)上叠殷,JupyterHub使用戶可以訪問計(jì)算環(huán)境和資源,而不會給他們增加安裝和維護(hù)任務(wù)的負(fù)擔(dān)诈皿。用戶可以在工作區(qū)中使用共享資源林束,系統(tǒng)管理員會對其進(jìn)行有效管理像棘。

在AI/ML工作負(fù)載中使用Kubernetes

Kubernetes非常擅長讓我們利用大型分布式計(jì)算環(huán)境。因?yàn)槠渎暶魇皆O(shè)計(jì)和基于發(fā)現(xiàn)的服務(wù)器尋址方法壶冒,所以將計(jì)算資源應(yīng)用于工作負(fù)載很容易缕题。通常在AI/ML工作負(fù)載中,工程師或研究人員需要分配更多的資源胖腾。而Kubernetes讓在物理基礎(chǔ)架構(gòu)之間遷移工作負(fù)載更加可行烟零。在本文中,我們將展示如何使用Rancher安裝JupyterHub咸作。

使用Rancher安裝JupyterHub

首先锨阿,假設(shè)我們在Rancher環(huán)境中擁有現(xiàn)代化的Kubernetes部署。在本文發(fā)布時(shí)记罚,Kubernetes的穩(wěn)定版本是1.16墅诡。對于JupyterHub來說,其中一個(gè)前期準(zhǔn)備是持久化存儲毫胜,所以你將需要思考如何在這個(gè)集群中提供它书斜。出于演示的目的诬辈,我們可以使用Rancher Catalog中包含的實(shí)驗(yàn)性NFS提供程序來提供持久化存儲酵使。點(diǎn)開App Catalog并選擇【啟動】。然后搜索NFS提供程序焙糟。保留默認(rèn)設(shè)置口渔,然后單擊屏幕底部的【啟動】。如果你已經(jīng)有持久化存儲的解決方案穿撮,也可以直接使用它缺脉。

image

導(dǎo)航到Rancher App Catalog

image

搜索NFS提供程序

image

啟動NFS提供程序

現(xiàn)在我們已經(jīng)有了存儲提供程序并且定義了默認(rèn)存儲類,我們可以繼續(xù)部署應(yīng)用程序組件悦穿。我們將使用Helm3來完成這一操作攻礼。查看helm官方文檔(https://helm.sh/docs/intro/install/ ),在你的電腦上安裝helm3客戶端栗柒。另外礁扮,你也可以使用Rancher Catalog來部署helm chart,而無需任何其他工具瞬沦。需要確保將repo添加到Rancher catalog中太伊。

在我們使用helm之前,我們需要為應(yīng)用程序創(chuàng)建一個(gè)命名空間逛钻。在Rancher UI中僚焦,進(jìn)入集群并選擇頂端菜單欄的【項(xiàng)目/命名空間】。你可以為JupyterHub創(chuàng)建一個(gè)新的命名空間曙痘。例如芳悲,我們將命名空間稱為“jhub“立肘。請注意此名稱,因?yàn)槲覀儗⒅髸褂谩?/p>

image

創(chuàng)建一個(gè)命名空間

接下來名扛,我們可以為將要使用的JupyterHub Chart添加Helm repo赛不。如果使用的是Rancher catalog,你需要在UI上完成此操作而不是Helm CLI:

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

然后罢洲,讓我們創(chuàng)建一個(gè)config文件踢故,其中包含了我們要與此chart一起使用的設(shè)置。我們將該文件命名為config.yaml:

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

讓我們替換幾個(gè)項(xiàng)目惹苗,使它們是唯一的殿较。用以下輸出替換secretToken:

openssl rand -hex 32

并替換為你打算用來訪問JyupiterHub UI的可解析DNS名稱。

有了配置文件之后桩蓉,就可以安裝chart了淋纲。我們將引用該配置文件,因此請確保該文件存在你當(dāng)前的工作目錄中:

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

Helm現(xiàn)在應(yīng)該部署所需的組件院究。這將需要一些時(shí)間洽瞬,但是最終你應(yīng)該能夠通過之前設(shè)置的主機(jī)名訪問UI。你也可以通過轉(zhuǎn)到Rancher UI中的“工作負(fù)載“選項(xiàng)卡來檢查狀態(tài)业汰。當(dāng)我們嘗試在瀏覽器中設(shè)置的主機(jī)名時(shí)伙窃,它將顯示以下登錄界面:

image

主機(jī)名登錄界面

在撰寫本文時(shí),有一個(gè)issue是Kubernetes 1.16中的更改導(dǎo)致Jyupiter Hub的代碼在嘗試與Kuberentes API交互時(shí)中斷样漆。如果要立即修復(fù)为障,我們可以運(yùn)行以下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"]}]'

你現(xiàn)在已經(jīng)在Rancher上部署了可以正常工作的JupyterHub環(huán)境。默認(rèn)情況下放祟,JupyterHub使用PAM身份驗(yàn)證鳍怨。因此,可以使用系統(tǒng)上的任何有效Linux用戶登錄跪妥。登錄后鞋喇,我們應(yīng)該能夠創(chuàng)建新的notebook:

image

Jupyter登錄界面

image

創(chuàng)建新的notebook

另外,你可以查看其他你可能想配置的身份驗(yàn)證選項(xiàng)眉撵。例如侦香,你可以使用Github身份驗(yàn)證來允許用戶登錄并且創(chuàng)建基于他們Github ID的notebook。你選擇好一個(gè)身份驗(yàn)證的工具之后执桌,需要按照說明更新我們之前創(chuàng)建的config.yml文件鄙皇,然后重新運(yùn)行helm upgrade命令。

總 結(jié)

在本文中仰挣,我們展示了如何使用Rancher安裝JupyterHub來為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)開發(fā)創(chuàng)建可擴(kuò)展的工作區(qū)伴逸。如果你想要安裝功能齊全的JupyterHub安裝,你可能還需要考慮其他因素膘壶。本文只是向你展示了如何快速搭建一個(gè)基礎(chǔ)功能的JupyterHub错蝴,希望能幫助你快速開啟AI旅程洲愤!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顷锰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子官紫,更是在濱河造成了極大的恐慌,老刑警劉巖束世,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酝陈,死亡現(xiàn)場離奇詭異,居然都是意外死亡沉帮,警方通過查閱死者的電腦和手機(jī)贫堰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門穆壕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人其屏,你說我怎么就攤上這事喇勋÷” “怎么了茄蚯?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長壮不。 經(jīng)常有香客問我,道長询一,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任菱阵,我火速辦了婚禮缩功,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫡锌。我一直安慰自己琳钉,他們只是感情好蛛倦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溯壶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪躲庄。 梳的紋絲不亂的頭發(fā)上钾虐,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音效扫,去河邊找鬼倔监。 笑死菌仁,一個(gè)胖子當(dāng)著我的面吹牛浩习,可吹牛的內(nèi)容都是我干的济丘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疟赊,長吁一口氣:“原來是場噩夢啊……” “哼峡碉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鲫寄,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤地来,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后未斑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荠列,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了费就。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片川队。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖固额,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逝慧,我是刑警寧澤啄糙,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站隧饼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏诞丽。R本人自食惡果不足惜拐格,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禁荒。 院中可真熱鬧,春花似錦、人聲如沸谒所。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奕锌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惊暴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工肄鸽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留油啤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓逮诲,卻偏偏與公主長得像幽告,于是被迫代替她去往敵國和親梅鹦。 傳聞我的和親對象是個(gè)殘疾皇子评腺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容