ACK集群支持GPU共享調度時節點需要安裝cGPU模塊。本文介紹如何通過命令及控制臺升級節點上的cGPU模塊。
前提條件
已通過kubectl連接集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
集群已經安裝ack-ai-installer組件或ack-cgpu組件,并已升級到最新版本:
ack-ai-installer組件升級方式,請參見升級共享GPU調度組件。
ack-cgpu組件升級方式,請按照如下步驟進行:
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在Helm詳情頁面,找到ack-cgpu組件,點擊其對應的更新按鈕,選擇對應的版本,然后單擊確定。
升級節點需要停止節點上運行的GPU應用,請選擇業務低峰期進行。
升級方案
方案二步驟較多,但在執行過程中不會影響系統盤和數據盤上的其他數據。
方案一會重置節點的操作系統盤,如果您的節點操作系統盤存在數據,請選擇方案二。
方案一:重置節點
移除并重新添加節點
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在節點頁面選中待升級的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
只是當前時間最新的版本號,后續組件更新將導致版本號變更。
方案二:執行腳本
步驟一:節點排水
執行以下命令,進行節點下線操作。
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
只是當前時間最新的版本號,后續組件更新將導致版本號變更。