全部產品
Search
文件中心

Container Service for Kubernetes:通過節點池升級已有節點的NVIDIA驅動

更新時間:Jul 04, 2025

如果您使用的CUDA庫需要匹配更高版本的NVIDIA驅動,您需要升級節點的驅動版本。基於節點池升級節點NVIDIA驅動後,您可以批量管理叢集中不同節點的NVIDIA驅動。本文介紹如何通過節點池升級現有節點NVIDIA驅動。

使用限制

升級NVIDIA驅動需要將節點從原有節點池中移除,並添加至新建立的節點池中。由於原有節點池中可能存在其它節點,無法在原有節點池中完成目標節點的NVIDIA驅動升級。

重要

在添加過程中,節點會經歷重裝系統和安裝指定NVIDIA驅動。請在執行升級操作前,確認該節點沒有正在啟動並執行任務和重要資料。為降低風險,建議先升級一個節點,確認整個升級過程無誤後再批量升級。

注意事項

  • ACK不保證GPU驅動版本與CUDA庫版本的相容性,您需要自行驗證二者之間的適配性。

  • NVIDIA各卡型對驅動版本的更詳細的要求,請參見NVIDIA官方文檔

  • 對於已經安裝GPU驅動、NVIDIA Container Runtime等GPU組件的自訂動作系統鏡像,ACK無法保證其提供的GPU驅動與ACK其他GPU組件相容(例如監控組件等)。

  • 通過節點池標籤指定GPU節點的驅動版本時,驅動安裝過程在添加節點時觸發,因此僅適用於新擴容或新添加的節點,現有節點將不受影響。如需對已有節點應用新驅動,請移除節點並重新添加已有節點

  • 執行個體規格為gn7ebmgn7對510.xxx和515.xxx版本驅動存在相容性問題,建議使用關閉GSP的510以下的驅動版本(例如:470.xxx.xxxx)或525.125.06及其以上的驅動版本。

  • 執行個體規格為ebmgn7ebmgn7e的ECS,僅支援460.32.03之後的NVIDIA驅動版本。

  • 建立節點池過程中,如果您指定的驅動版本不存在於ACK支援的NVIDIA驅動版本列表,ACK將自動安裝預設驅動版本。若您指定了與最新作業系統不相容驅動版本,可能存在節點添加失敗的情況,需選擇目前支援的最新驅動版本。

  • 如果您上傳自己的GPU驅動到OSS中,使用自訂的GPU節點驅動方式,可能引發GPU驅動與作業系統版本、ECS執行個體類型、Container Runtime等不相容,繼而導致添加GPU節點失敗。ACK無法保證節點添加的成功率,請您自行驗證。

使用樣本

  • 如果您使用節點池A管理叢集已升級NVIDIA驅動版本的節點,當需要將任務調度到該驅動版本的節點上時,只需要將任務的nodeselector指定為節點池A的標籤。

  • 如果需要將叢集中一部分節點的NVIDIA驅動升級至550.144.03版本,另一部分的節點升級至535.161.07版本,您可以將一部分節點添加至節點池A,另一部分節點添加至節點池B。

步驟一:確定NVIDIA驅動版本

選定NVIDIA驅動版本前,您需要確定所使用的CUDA庫與哪些NVIDIA驅動版本相容。您可以參見cuda-toolkit-release-notes查看CUDA庫與NVIDIA驅動的相容關係,選擇合適的NVIDIA驅動版本。

步驟二:移除節點

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點

  3. 選中待升級驅動的節點,單擊大量移除,然後在移除節點對話方塊,選中自動排空節點(drain),並單擊確定

步驟三:建立節點池並指定驅動版本

從驅動版本列表選擇驅動建立節點池

說明
  • ACK支援的NVIDIA驅動版本列表選擇與您業務相匹配的NVIDIA驅動版本。本文以驅動版本550.144.03為例進行介紹。

  • 此種方式安裝驅動較為簡單。為節點池的節點打上標籤ack.aliyun.com/nvidia-driver-version=<驅動版本>,然後將步驟二中叢集移除的節點添加到該節點池即可。

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點池

  3. 單擊左上方的建立節點池,關於配置項的詳細說明,請參見建立和管理節點池。主要配置如下。

    節點標籤(Labels)參數欄添加標籤,單擊1表徵圖,然後在文字框輸入ack.aliyun.com/nvidia-driver-version,在文字框輸入550.144.03

自訂驅動版本建立節點池

本小節以驅動版本515.86.01為例進行介紹。

步驟一:自訂驅動版本

  1. 如果ACK支援的NVIDIA驅動版本列表中未包含您的業務所需的驅動版本,您可以從NVIDIA官方網站下載目標驅動版本。

  2. NVIDIA YUM官方倉庫下載nvidia fabric manager,nvidia fabric manager的版本需和驅動版本一致。

    wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-515.86.01-1.x86_64.rpm
  3. 登入Object Storage Service控制台,建立OSS Bucket。具體操作,請參見建立儲存空間

    建議OSS Bucket所在地區與目標ACK叢集所在地區相同,為ACK節點安裝GPU驅動時,可以通過內網OSS Bucket拉取驅動。

  4. 上傳檔案NVIDIA-Linux-x86_64-515.86.01.runnvidia-fabric-manager-515.86.01-1.x86_64.rpm至目標Bucket的根目錄。

  5. 在目標Bucket頁面的左側導覽列,單擊檔案管理 > 檔案清單,單擊已上傳檔案右側操作列的詳情,查看驅動檔案的詳情。

  6. 詳情面板,關閉使用 HTTPS開關,取消使用HTTPS的配置。

  7. 在目標Bucket詳情頁,單擊左側導覽列的概覽,在頁面下方擷取內網訪問地址。

步驟2:自訂驅動版本後,建立節點池

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點池

  3. 單擊左上方的建立節點池,關於配置項的詳細說明,請參見建立和管理節點池。主要配置如下。

    節點標籤(Labels)參數欄添加標籤,單擊1表徵圖。

    ack.aliyun.com/nvidia-driver-oss-endpoint

    步驟一第七步中擷取的OSS Bucket內網訪問地址。

    my-nvidia-driver.oss-cn-beijing-internal.aliyuncs.com

    ack.aliyun.com/nvidia-driver-runfile

    步驟一第一步中下載的NVIDIA驅動的名稱。

    NVIDIA-Linux-x86_64-515.86.01.run

    ack.aliyun.com/nvidia-fabricmanager-rpm

    步驟一第二步中下載的nvidia fabric manager的名稱。

    nvidia-fabric-manager-515.86.01-1.x86_64.rpm

步驟四:添加節點到節點池

節點池建立完成以後,需要將步驟二中移除的節點添加到該節點池。

步驟五:驗證通過節點池升級節點NVIDIA驅動是否成功

  1. 執行以下命令,查看帶有component: nvidia-device-plugin標籤的Pod。

    kubectl get po -n kube-system -l component=nvidia-device-plugin -o wide

    預期輸出:

    NAME                                            READY   STATUS    RESTARTS   AGE   IP              NODE                       NOMINATED NODE   READINESS GATES
    nvidia-device-plugin-cn-beijing.192.168.1.127   1/1     Running   0          6d    192.168.1.127   cn-beijing.192.168.1.127   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.1.128   1/1     Running   0          17m   192.168.1.128   cn-beijing.192.168.1.128   <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.12    1/1     Running   0          9d    192.168.8.12    cn-beijing.192.168.8.12    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.13    1/1     Running   0          9d    192.168.8.13    cn-beijing.192.168.8.13    <none>           <none>
    nvidia-device-plugin-cn-beijing.192.168.8.14    1/1     Running   0          9d    192.168.8.14    cn-beijing.192.168.8.14    <none>           <none>

    預期輸出表明,NODE列下叢集中剛添加的節點對應的Pod名稱為nvidia-device-plugin-cn-beijing.192.168.1.128

  2. 執行以下命令查看節點的驅動版本是否符合預期。

    kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smi 

    預期輸出:

    Mon Mar 24 08:51:55 2025       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI xxx.xxx.xx   Driver Version: xxx.xxx.xx   CUDA Version: N/A      |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM2...  On   | 00000000:00:07.0 Off |                    0 |
    | N/A   27C    P0    40W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla V100-SXM2...  On   | 00000000:00:08.0 Off |                    0 |
    | N/A   27C    P0    40W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   2  Tesla V100-SXM2...  On   | 00000000:00:09.0 Off |                    0 |
    | N/A   31C    P0    39W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   3  Tesla V100-SXM2...  On   | 00000000:00:0A.0 Off |                    0 |
    | N/A   27C    P0    41W / 300W |      0MiB / 16130MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

    查看輸出中節點的NVIDIA驅動版本,若與目標版本一致,則表明驅動升級成功。

相關文檔

通過指定版本號碼自訂節點GPU驅動版本