升级节点cGPU版本

ACK集群支持GPU共享调度时节点需要安装cGPU模块。本文介绍如何通过命令及控制台升级节点上的cGPU模块。

前提条件

  • 已通过kubectl连接集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群

  • 集群已经安装ack-ai-installer组件或ack-cgpu组件,并已升级到最新版本:

    • ack-ai-installer组件升级方式,请参见升级共享GPU调度组件

    • ack-cgpu组件升级方式,请按照如下步骤进行:

      • 登录容器服务管理控制台,在左侧导航栏选择集群

      • 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm

      • Helm详情页面,找到ack-cgpu组件,点击其对应的更新按钮,选择对应的版本,然后单击确定

  • 升级节点需要停止节点上运行的GPU应用,请选择业务低峰期进行。

升级方案

重要
  • 方案一步骤较多,但在执行过程中不会影响系统盘和数据盘上的其他数据。

  • 方案二会重置节点的操作系统盘,如果您的节点操作系统盘存在数据,请选择方案一。

方案一:执行脚本

步骤一:节点排水

  1. 执行以下命令,进行节点下线操作。

    kubectl cordon <NODE1_NAME> <NODE2_NAME>...
  2. 执行以下命令,进行节点排水操作。

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

方案二:重置节点

移除并重新添加节点

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  3. 节点页面选中待升级的cGPU节点,单击批量移除移除节点对话框选中自动排空节点(drain)

  4. 将移除的节点重新添加到原有的节点池中。具体操作,请参见添加已有节点

验证

  1. 执行以下命令,查询新添加节点所对应的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>
  2. 执行以下命令,进入名称为cgpu-installer-******的Pod。

    kubectl exec -ti cgpu-installer-***** -n kube-system -- bash
  3. 执行以下命令,查询cGPU当前版本。

    nsenter -t 1 -i -p -n -u -m -- cat /proc/cgpu_km/version

    预期输出:

    1.5.10
    说明

    1.5.10只是当前时间最新的版本号,后续组件更新将导致版本号变更。