不同類型和版本的ACK叢集預設為您安裝不同版本的NVIDIA驅動。如果您使用的CUDA庫需要匹配更高版本的NVIDIA驅動,需要自訂安裝節點的NVIDIA驅動。本文介紹如何基於節點池標籤自訂GPU節點的NVIDIA驅動版本。
注意事項
對於GPU驅動版本與您業務應用的相容性(GPU驅動版本與CUDA庫版本的相容性),ACK不保證兩者之間相容性,請您自行驗證。
對於已經安裝GPU驅動、NVIDIA Container Runtime等GPU組件的自訂動作系統鏡像,ACK無法保證其提供的GPU驅動與ACK其他GPU組件相容(例如監控組件等)。
通過節點池標籤指定節點池中GPU節點的驅動版本時,由於安裝驅動的過程是在添加節點時被觸發,因此僅對新擴容或新添加的節點有效,對節點池中已經存在的節點無效。如果希望對已有節點有效,那麼需要將該節點從節點池移除,再加入原節點池。具體操作,請參見移除節點和添加已有節點。
機型ecs.gn7.xxxxx和ecs.ebmgn7.xxxx對510.xxx和515.xxx版本驅動存在相容性問題,建議使用關閉GSP的510以下的驅動版本(例如:470.xxx.xxxx)或525.125.06及其以上的驅動版本。
NVIDIA各卡型(P100、T4、V100、A10等)對驅動版本的更詳細的要求,請參見NVIDIA官方文檔。
步驟一:確定NVIDIA驅動版本
從ACK支援的NVIDIA驅動版本列表選擇與您業務相匹配的NVIDIA驅動版本。具體操作,請參見如何選擇節點NVIDIA驅動版本。
步驟二:建立節點池並指定驅動版本
本文以驅動版本418.181.07為例進行介紹。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
單擊右上方的建立節點池,然後在建立節點池對話方塊配置相關參數。
主要配置項說明如下。關於配置項的詳細說明,請參見建立ACK託管叢集。
單擊顯示進階選項。
在節點標籤參數欄添加標籤,單擊表徵圖,然後在鍵文字框輸入
ack.aliyun.com/nvidia-driver-version
,在值文字框輸入418.181.07
。關於Container Service提供的可用NVIDIA驅動版本,請參見ACK支援的NVIDIA驅動版本列表。
重要執行個體規格為ecs.ebmgn7或ecs.ebmgn7e的ECS,僅支援460.32.03之後的NVIDIA驅動版本。
參數配置完成後,單擊確認配置。
步驟三:驗證節點池自訂安裝NVIDIA驅動是否成功
登入Container Service管理主控台,在左側導覽列選擇叢集。
在目的地組群右側的操作列,選擇
。執行以下命令,查看帶有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。
執行以下命令查看節點的驅動版本是否符合預期。
kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smi
預期輸出:
Sun Feb 7 04:09:01 2021 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.181.07 Driver Version: 418.181.07 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 | +-----------------------------------------------------------------------------+
預期輸出表明,驅動版本為418.181.07,即通過節點池自訂安裝NVIDIA驅動成功。
其他方式
使用OpenAPI方式建立或者擴容叢集時,可在目標節點池的配置中設定自訂驅動的標籤。範例程式碼如下:
{
// 其他部分省略
......
"tags": [
{
"key": "ack.aliyun.com/nvidia-driver-version",
"value": "418.181.07"
}
],
// 其他部分省略
......
}