ACK叢集支援GPU共用調度時節點需要安裝cGPU模組。本文介紹如何通過命令及控制台升級節點上的cGPU模組。
前提條件
已通過kubectl串連叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集。
叢集已經安裝ack-ai-installer組件或ack-cgpu組件,並已升級到最新版本:
ack-ai-installer組件升級方式,請參見升級共用GPU調度組件。
ack-cgpu組件升級方式,請按照如下步驟進行:
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在Helm詳情頁面,找到ack-cgpu組件,點擊其對應的更新按鈕,選擇對應的版本,然後單擊確定。
升級節點需要停止節點上啟動並執行GPU應用,請選擇業務低峰期進行。
升級方案
方案一步驟較多,但在執行過程中不會影響系統硬碟和資料盤上的其他資料。
方案二會重設節點的作業系統盤,如果您的節點作業系統盤存在資料,請選擇方案一。
方案一:執行指令碼
步驟一:節點排水
執行以下命令,進行節點下線操作。
kubectl cordon <NODE1_NAME> <NODE2_NAME>...
執行以下命令,進行節點排水操作。
kubectl drain <NODE1_NAME> <NODE2_NAME>... --grace-period=120 --ignore-daemonsets=true
步驟二:卸載舊版cGPU
登入到cGPU所在的節點,執行以下命令。
bash /usr/local/cgpu-installer/uninstall.sh
若/usr/local/cgpu-installer/uninstall.sh不存在,請執行以下命令卸載舊版本cGPU。
wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/cgpu-uninstall.sh -O /usr/local/cgpu-installer/uninstall.sh
步驟三:安裝新版cGPU
執行以下命令,配置cGPU所在的節點名,並重啟cgpu-installer和cgpu-core-installer組件的Pod。
export NODE= cn-beijing.192.168.XXX.XXXX # 指定Node。
kubectl delete pods -n kube-system -l name=cgpu-installer --field-selector spec.nodeName=$NODE
kubectl delete pods -n kube-system -l name=cgpu-core-installer --field-selector spec.nodeName=$NODE
驗證
執行以下命令,查看cGPU版本是否已升級至新版本。
cat /proc/cgpu_km/version
預期輸出:
1.5.10
1.5.10
只是目前時間最新的版本號碼,後續組件更新將導致版本號碼變更。
方案二:重設節點
移除並重新添加節點
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在節點頁面選中待升級的cGPU節點,單擊大量移除,在移除節點對話方塊選中自動排空節點(drain)。
將移除的節點重新添加到原有的節點池中。具體操作,請參見添加已有節點。
驗證
執行以下命令,查詢新添加節點所對應的cgpu-installer。
kubectl get po -l name=cgpu-installer -n kube-system -o wide
預期輸出:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cgpu-installer-***** 1/1 Running 0 4d2h 192.168.XXX.XX1 cn-beijing.192.168.XXX.XX1 <none> <none> cgpu-installer-**2 1/1 Running 0 4d2h 192.168.XXX.XX2 cn-beijing.192.168.XXX.XX2 <none> <none> cgpu-installer-**3 1/1 Running 0 4d2h 192.168.XXX.XX3 cn-beijing.192.168.XXX.XX3 <none> <none>
執行以下命令,進入名稱為
cgpu-installer-******
的Pod。kubectl exec -ti cgpu-installer-***** -n kube-system -- bash
執行以下命令,查詢cGPU目前的版本。
nsenter -t 1 -i -p -n -u -m -- cat /proc/cgpu_km/version
預期輸出:
1.5.10
說明1.5.10
只是目前時間最新的版本號碼,後續組件更新將導致版本號碼變更。