全部產品
Search
文件中心

Container Service for Kubernetes:如何通過雲原生AI套件建立和使用Notebook

更新時間:Apr 24, 2025

資料科學家可以利用雲原生AI套件建立Jupyter或VSCode類型的Notebook,用於機器學習演算法的開發與調試,並將演算法提交至ACK叢集進行訓練。雲原生AI套件可根據使用者需求,部署開源JupyterLab、自訂Jupyter或VSCode服務鏡像至ACK叢集,作為AI模型的整合式開發環境。同時,雲原生AI套件會自動設定相關參數,並與ACK叢集的使用者權限機制無縫整合。本文將詳細介紹如何通過雲原生AI套件建立和使用Notebook。

前提條件

Notebook功能介紹

  • 提供一個與雲平台深度整合的機器學習實驗環境,支援機器學習的本地開發、測試和預先處理等全流程工作。

  • 內建資料集處理工具,支援資料拷貝、清洗和預先處理,並可將處理後的資料直接提交至持久化儲存,同時相容巨量資料工具進行高效處理。

  • 支援在環境中編寫和調試機器學習代碼,並將其打包為Docker鏡像,推送至本地或遠程容器鏡像倉庫,便於後續部署和使用。

步驟一:建立Notebook

  1. 登入開發控制台。具體操作,請參見訪問AI開發控制台

  2. 在開發控制台左側導覽列中,單擊Notebook

  3. Notebook頁面,單擊建立Notebook

  4. Notebook messageNotebook資源配置進階配置地區,配置相關資訊後,單擊建立Notebook

    create_notebook

    • Notebook message地區:

      1. 輸入Notebook名稱,選擇Notebook鏡像命名空間,其中命名空間只能提交到叢集管理員為開發分配的命名空間中,Notebook鏡像可選擇預設鏡像和自訂鏡像,其他選項請按需配置。

        說明
        • 選擇Notebook鏡像時,請務必選擇適合您需求的Notebook鏡像。Jupyter Notebook只能選擇Jupyter鏡像,VSCode Notebook只能選擇VSCode鏡像,否則Notebook無法正常工作。

        • 自訂Notebook鏡像僅在當前叢集中可見,其他叢集或多使用者無法共用。

      2. 開啟Workspace PVC開關,在Workspace持久化的目標PVC下拉式清單,選擇Workspace掛載的PVC。

      3. 開啟Token開關,給Notebook注入自訂Token來增強安全性。目前僅支援Jupyter類型的Notebook。

      4. 通過選擇Notebook Type來決定鏡像的啟動方式,因為不同的Notebook類型需要在不同的環境中運行。例如,當Notebook Type選擇Jupyter時,表示建立一條Jupyter Notebook類型的Notebook。

    • Notebook資源配置地區,輸入CPU(核心數)GPU卡數,選擇記憶體(GPU)

    • 進階配置地區,您可以選擇添加LabelAnnotationNodeSelectorToleration為您的Notebook增加配置。

  5. 任務建立完成後,您可以在Notebook頁面,單擊剛建立的Notebook的名稱,即可查看Notebook的健全狀態等資訊。

步驟二:使用Notebook

使用Jupyter Notebook

  1. Notebook頁面,單擊選擇一個狀態Running的Jupyter Notebook。

  2. 單擊Notebook地區下的Python3

    說明

    在建立Notebook頁面,阿里雲Container Service團隊提供的官方鏡像只支援Python語言。如果您有其他需求,可以根據製作Notebook自訂鏡像的說明內容進行自訂鏡像Dockerfile的製作與鏡像的打包操作,具體操作,請參見製作Notebook自訂鏡像說明

    23

  3. 在Jupyter Notebook中使用Arena進行任務提交。

    方式一:在命令列工具使用Arena進行任務提交

    24

    方式二:在Python的SDK中使用Arena進行任務提交

    25

使用VSCode Notebook

  1. Notebook頁面,單擊選擇一個狀態Running的VSCode Notebook。

  2. VSCode頁面,您可以擁有和本地一樣的VSCode開發體驗,並且環境中已經注入了KubeConfig並設定了環境變數供您使用。

    image..png

製作Notebook自訂鏡像說明

在製作Notebook自訂鏡像之前,請先在Jupyter Notebook或VSCode Notebook環境中安裝最新版本的Arena組件,以便您在開發環境中運行提供的Demo樣本流程。關於如何安裝Arena組件,請參見配置Arena用戶端

說明

自訂Notebook鏡像僅在當前叢集中可見,其他叢集或多使用者無法共用。

製作Jupyter Notebook自訂鏡像說明

為了滿足不同的使用者的不同需求,在建立Notebook頁面為您提供了自訂Notebook鏡像的入口,如下圖所示:

28

您可以基於以下流程進行自訂鏡像Dockerfile的製作與鏡像的打包操作:

說明

鏡像中JupyterLab的版本必須大於等於3.0.0。

FROM tensorflow/tensorflow:1.15.5-gpu
USER root
RUN pip install jupyter && \
    pip install ipywidgets && \
    jupyter nbextension enable --py widgetsnbextension && \
    pip install jupyterlab && jupyter serverextension enable --py jupyterlab
# 下載安裝Arena的Python SDK工具包。
RUN pip install arenasdk
# 您可以通過其他途徑安裝JupyterLab,但是必須暴露服務到8888連接埠。
EXPOSE 8888
USER jovyan

製作VSCode Notebook自訂鏡像說明

VSCode Notebook在建立頁面提供了自訂鏡像的入口,如下圖所示。

image..png

您可以基於以下的流程進行自訂Dockerfile的製作與鏡像的打包操作:

FROM ubuntu:18.04
USER root

RUN apt update && \
  	apt install -y curl

RUN cd /opt && \
  	wget https://aliacs-k8s-cn-hongkong.oss-cn-hongkong.aliyuncs.com/arena/install.sh && \
    /opt/install.sh

您需要根據自己選擇的基礎鏡像動態調整Dockerfile的內容細節,從而使得鏡像成功Build。

在Notebook中儲存自身為鏡像

ack-ai-dev-console組件在1.0.22及以上版本支援將Notebook儲存為鏡像,達到儲存該Notebook開發環境的目的。

說明

該功能僅適用於在 ack-ai-dev-console1.0.22及更高版本中建立的Notebook執行個體,無法對已有執行個體進行操作。

如果您需要在Notebook中儲存自身為鏡像,可以按照以下操作步驟執行:

  1. 在Notebook中下載ack-commit-agent的一個用戶端二進位工具,這裡是該工具的下載地址

  2. 下載結束之後,您需要在Notebook中執行以下命令,使得該用戶端全域可執行。

    chmod +x ack-commit-ctl
    mv ack-commit-ctl /usr/bin/
  3. 使用該工具提交儲存Notebook的鏡像,這裡展示一個提交鏡像的樣本操作。

    ack-commit-ctl commit image-commit-sample:v0.1.0-test
    INFO[0000] container id: xxx
    INFO[0002] Container save success, image: image-commit-sample:v0.1.0-test

    提交操作結束後出現類似以上輸出說明將該Notebook儲存為鏡像提交成功。

  4. 執行以下命令,指定鏡像倉庫的使用者名稱和密碼,將鏡像推送到鏡像倉庫中。

    ack-commit-ctl push image-commit-sample:v0.1.0-test --username=username --password=password
    INFO[0000] Start pushing the image:  image-commit-sample:v0.1.0-test 
    INFO[0000] Waiting...                                   
    INFO[0003] Image pushed successfully: image-commit-sample:v0.1.0-test

    出現類似以上輸出則說明鏡像已成功推送到鏡像倉庫中。

使用已經儲存的鏡像

  1. 確認ack-ai-dev-console組件已升級到1.0.21及以上版本。

  2. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  3. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 容器組

  4. 容器組頁面中找到已儲存鏡像的Notebook的容器組,單擊該容器組名稱,在Pod詳情頁面擷取該Pod所在節點的節點名稱。

  5. Notebook頁面,建立一個新的Notebook。

    1. 鏡像拉取憑證中選擇已製作的Notebook自訂鏡像,然後在右側的進階配置中配置NodeSelector條目,配置NodeSelector的Key為kubernetes.io/hostname,Value為步驟4擷取的Pod節點名稱。

    2. 單擊建立Notebook,Notebook建立成功即視為已使用儲存的鏡像。