在使用Kubernetes叢集實現GPU計算時,為了有效利用GPU裝置,可使用GPU節點卡型屬性標籤將應用調度至目標節點。本文介紹GPU節點卡型屬性標籤基本資料以及如何使業務運行或不運行在指定卡型上。
GPU節點卡型屬性標籤說明
在ACK叢集中擴容GPU節點或者添加GPU節點時,添加節點指令碼會自動為該GPU節點打上如下的三個標籤。
標籤名稱 | 描述 |
aliyun.accelerator/nvidia_name | GPU節點的GPU卡型名稱。 |
aliyun.accelerator/nvidia_mem | GPU節點的每張卡的顯存容量。 |
aliyun.accelerator/nvidia_count | GPU節點總共擁有的GPU卡數。 |
上述三個標籤的值可以使用節點上nvidia-smi工具查詢。
查詢類型 | 查詢命令 |
查詢卡型 |
|
查詢每張卡顯存容量 |
|
查詢節點上總共擁有的GPU卡數 |
|
在叢集中使用如下命令可以查詢節點的GPU卡型。
kubectl get nodes -L aliyun.accelerator/nvidia_name
NAME STATUS ROLES AGE VERSION NVIDIA_NAME
cn-shanghai.192.XX.XX.176 Ready <none> 17d v1.26.3-aliyun.1 Tesla-V100-SXM2-32GB
cn-shanghai.192.XX.XX.177 Ready <none> 17d v1.26.3-aliyun.1 Tesla-V100-SXM2-32GB
cn-shanghai.192.XX.XX.130 Ready <none> 18d v1.26.3-aliyun.1 Tesla-V100-SXM2-32GB
cn-shanghai.192.XX.XX.131 Ready <none> 17d v1.26.3-aliyun.1 Tesla-V100-SXM2-32GB
cn-shanghai.192.XX.XX.132 Ready <none> 17d v1.26.3-aliyun.1 Tesla-V100-SXM2-32GB
使業務運行在指定卡型上
利用上述GPU屬性標籤,可以讓您的業務運行在指定卡型的節點上,以下為舉例說明。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在任務頁面右上方,單擊使用YAML建立資源。效果如下。
建立成功後,您可以在左側導覽列中選擇
。在容器組列表中,您可看到一個樣本Pod(容器組)成功調度到對應的節點上,從而實現基於GPU節點標籤的靈活調度。
避免業務運行在某些卡型上
您可以利用節點親和性與反親和性避免讓業務運行在某些卡型上,以下為舉例說明。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在任務頁面右上方,單擊使用YAML建立資源。效果如下。
建立成功後,您可以在左側導覽列中選擇
。在容器組列表中,您可以看到一個樣本Pod(容器組)成功調度到沒有標籤aliyun.accelerator/nvidia_name的GPU節點上,從而實現基於GPU節點標籤的靈活調度。
相關文檔
安裝雲原生AI套件的調度組件ack-ai-installer之後,您可以為GPU節點打上調度屬性標籤,協助GPU節點啟用共用GPU調度、GPU拓撲感知調度等能力。詳細資料,請參見GPU節點調度屬性標籤。