全部產品
Search
文件中心

Container Service for Kubernetes:管理共用GPU調度組件

更新時間:Jun 11, 2025

ACK提供GPU共用調度能力,服務於共用單GPU的模型預測情境,同時也支援通過NVIDIA驅動核心態保障GPU顯存的隔離。當您的叢集已經安裝共用GPU調度組件,但節點GPU驅動版本與叢集中已存在的cGPU版本不相容,或者節點作業系統版本與叢集中已存在的cGPU版本不相容時,您需要將共用GPU調度組件升級到最新版本。本文介紹如何在GPU節點上管理共用GPU調度組件,實現GPU的調度和隔離能力。

前提條件

使用限制

  • 請勿將共用GPU調度的節點的CPU Policy設定為static

  • 若您需要自訂KubeConfig檔案路徑,由於kubectl inspect cgpu命令不支援--kubeconfig參數,請使用export KUBECONFIG=<kubeconfig>指定該路徑。

  • cGPU服務的隔離功能不支援以UVM的方式(即調用CUDA API cudaMallocManaged())申請顯存,請您使用其他方式申請顯存,例如調用cudaMalloc()等。更多資訊,請參見NVIDIA官方文檔

  • 共用GPU的DaemonSet的Pod在節點上的優先順序不是最高的,所以節點資源有可能被其他優先順序高的Pod搶佔而導致被驅逐。如果想避免這個問題,可以對您實際使用的DaemonSet(如共用GPU顯存的gpushare-device-plugin-ds)進行修改,加上priorityClassName: system-node-critical來保證其優先順序。

  • 為考慮效能因素,在使用cGPU的情況下,單張GPU卡最多建立20個Pod。當已建立Pod數超過此限制時,後續調度到該卡上的Pod將無法運行,並出現錯誤資訊Error occurs when creating cGPU instance: unknown

  • 共用GPU組件的安裝沒有地區限制,但GPU顯存隔離能力僅在以下地區中支援,請確保對應叢集屬於以下地區。

    展開查看地區資訊

    地區

    地區ID

    華北2(北京)

    cn-beijing

    華東2(上海)

    cn-shanghai

    華東1(杭州)

    cn-hangzhou

    華北3(張家口)

    cn-zhangjiakou

    華北6(烏蘭察布)

    cn-wulanchabu

    華南1(深圳)

    cn-shenzhen

    西南1(成都)

    cn-chengdu

    華南2(河源)

    cn-heyuan

    中國香港

    cn-hongkong

    日本(東京)

    ap-northeast-1

    印尼(雅加達)

    ap-southeast-5

    新加坡

    ap-southeast-1

    美國(維吉尼亞)

    us-east-1

    美國(矽谷)

    us-west-1

    德國(法蘭克福)

    eu-central-1

  • 版本配套資訊。

    配置

    支援版本

    Kubernetes版本

    Nvidia驅動版本

    418.87.01及以上

    容器運行時版本

    • Docker:19.03.5及以上

    • containerd:1.4.3及以上

    作業系統

    Alibaba Cloud Linux 3.x、Alibaba Cloud Linux 2.x、CentOS 7.6、CentOS 7.7、CentOS 7.9、Ubuntu 22.04

    支援顯卡

    P系列、T系列、V系列、A系列、H系列

安裝共用GPU調度組件

步驟一:安裝共用GPU組件

未部署雲原生AI套件

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 雲原生AI套件頁面,單擊一鍵部署

  4. 在一鍵部署雲原生AI套件頁面,選中調度策略擴充(批量任務調度、GPU共用、GPU拓撲感知)。

  5. (可選)單擊調度策略擴充(批量任務調度、GPU共用、GPU拓撲感知)右側的進階配置。在彈出的參數配置視窗,修改cGPU的policy欄位。修改完成後,單擊確定

    如果對cGPU算力共用無特殊要求,建議使用預設policy: 5,即原生調度。cGPU支援的policy,請參見安裝並使用cGPU服務image

  6. 雲原生AI套件頁面最下方,單擊部署雲原生AI套件

    組件安裝成功後,在雲原生AI套件頁面的組件列表中能看到已安裝的共用GPU組件ack-ai-installer

已部署雲原生AI套件

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 在調度組件ack-ai-installer所在行,單擊操作列的部署

  4. (可選)在彈出的參數配置視窗,修改cGPU的policy欄位。

    如果對cGPU算力共用無特殊要求,建議使用預設policy: 5,即原生調度。cGPU支援的policy,請參見安裝並使用cGPU服務image

  5. 修改完成後,單擊確定

    組件安裝完成後,ack-ai-installer狀態已部署

步驟二:開啟GPU共用調度能力和顯存隔離能力

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

  2. 節點池頁面,單擊建立節點池。參見建立和管理節點池完成相關配置。

  3. 建立節點池頁面,設定建立節點池的配置項,然後單擊確認配置。重要配置項及其說明如下:

    配置項

    說明

    期望節點數

    設定節點池初始節點數量。如無需建立節點,可以填寫為0。

    節點標籤

    標籤的值需根據您的業務需求添加。關於節點標籤的詳細說明,請參見GPU節點卡型及調度標籤說明

    下文以標籤值cgpu為例,該值表示節點開啟共用GPU調度能力,每個Pod僅需申請GPU顯存資源,多個Pod在一張卡上實行顯存隔離和算力共用。

    單擊節點標籤節點標籤,設定ack.node.gpu.schedulecgpu

    重要

步驟三:添加GPU節點

說明

如果您添加節點池時已經建立GPU節點,可以跳過此步驟。

完成建立節點池後,您還可以在節點池中添加GPU節點。添加GPU節點時,您需要指定執行個體規格的架構為GPU雲端服務器。具體操作,請參見添加已有節點建立和管理節點池

步驟四:安裝和使用GPU資源查詢工具

  1. 下載kubectl-inspect-cgpu。需將執行檔案下載至PATH環境變數包含目錄下,本文以/usr/local/bin/為例。

    • 如果您使用的是Linux系統,您可以通過以下命令下載kubectl-inspect-cgpu。

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-linux -O /usr/local/bin/kubectl-inspect-cgpu
    • 如果您使用的是macOS系統,您可以通過以下命令下載kubectl-inspect-cgpu。

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-darwin -O /usr/local/bin/kubectl-inspect-cgpu
  2. 執行以下命令,為kubectl-inspect-cgpu添加執行許可權。

    chmod +x /usr/local/bin/kubectl-inspect-cgpu
  3. 執行以下命令,查看叢集GPU使用方式。

    kubectl inspect cgpu

    預期輸出:

    NAME                       IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-shanghai.192.168.6.104  192.168.6.104  0/15                   0/15
    ----------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/15 (0%)

升級共用GPU調度組件

步驟一:確認共用GPU調度組件的升級方式

您需要根據叢集共用GPU調度組件(ack-ai-installer)的安裝方式選擇升級方式。安裝共用GPU調度組件有兩種方式。

  • 通過雲原生AI套件安裝(推薦):在雲原生AI套件頁面安裝共用GPU調度組件ack-ai-installer。

  • 通過應用目錄安裝(該方式已關閉):在應用市場應用目錄頁面安裝共用GPU調度組件ack-ai-installer。目前該安裝方式已關閉。但對於已通過該方式安裝的存量組件,您仍然可以在此方式完成組件的升級。

    重要

    如果您卸載了叢集中通過此方式安裝的組件,再次安裝時,您需要開通雲原生AI套件服務並完成安裝。

如何確定叢集中共用GPU調度組件的安裝方式?

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 確認雲原生AI套件頁面是否已部署ack-ai-installer組件。

    如有,則表明共用GPU調度組件通過雲原生AI套件完成了安裝,反之則是通過應用目錄完成了安裝。

步驟二:升級組件

通過雲原生AI套件升級

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > 雲原生AI套件

  3. 組件列表地區,定位ack-ai-installer組件並在操作列單擊升級

通過應用目錄升級

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

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

  3. 在Helm列表,定位ack-ai-installer組件,在操作列單擊更新,根據頁面指引選擇最新的Chart版本並完成組件更新。

    重要

    如需進行Chart的自訂配置,請在修改配置後確認組件的更新。

    更新後,請在Helm列表確認ack-ai-installer組件的Chart版本為最新版本。

步驟三:升級存量節點

ack-ai-installer組件升級完成後,並不會升級存量節點的cGPU版本。請參見下方說明,判斷節點是否啟用cGPU隔離功能。

  • 若叢集中包含啟用了cGPU隔離功能的GPU節點,還需升級存量節點的cGPU版本。具體操作,請參見升級節點cGPU版本

  • 若叢集中不存在已開啟cGPU隔離能力的節點,則忽略此步驟。

    說明
    • 若節點上存在標籤ack.node.gpu.schedule=cgpuack.node.gpu.schedule=core_mem,代表已啟用cGPU隔離能力。

    • 升級存量節點cGPU版本需要停掉節點上的所有業務Pod,請根據業務情境,在低峰期執行此操作。