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
只是当前时间最新的版本号,后续组件更新将导致版本号变更。