1. 程式人生 > >當AI遇上K8S:使用Rancher安裝機器學習必備工具JupyterHub

當AI遇上K8S:使用Rancher安裝機器學習必備工具JupyterHub

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.sh/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: secret