针对使用共享GPU的模型预测场景,容器服务 Kubernetes 版提供了共享GPU调度能力,同时也支持NVIDIA驱动在内核态的控制,保障GPU显存的隔离。本文介绍如何在专有版GPU集群中安装GPU隔离模块及GPU分配查询工具,实现GPU的共享和隔离能力。
前提条件
已创建ACK专有版GPU集群。具体操作,请参见创建GPU集群。
已通过kubectl工具连接专有版GPU集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
使用限制
支持共享GPU调度的节点不能将CPU Policy设置为
static
。目前GPU隔离模块cGPU 1.5.0以下版本不兼容5xx系列的GPU驱动,即以5开头的驱动,例如510.47.03。
更多使用限制,见下表。
配置 | 支持版本 |
Kubernetes | 仅支持1.12.6及其以上版本的专有版集群 |
操作系统 | 仅支持CentOS 7.x、Alibaba Cloud Linux 2.x、Alibaba Cloud Linux 3.x、Ubuntu 16.04和Ubuntu 18.04操作系统 |
支持显卡 | 仅支持Tesla P4、Tesla P100、 Tesla T4和Tesla v100 |
步骤一:为带有GPU设备的节点打标签
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点管理页面,单击右上角的标签与污点管理。
在标签与污点管理页面,批量选择节点,然后单击添加标签。
在弹出的添加对话框中,填写标签名称和值,然后单击确定。
设置名称为cgpu,值为true,使节点共享GPU功能生效。
如果您需要关闭节点共享GPU功能,可以设置名称为cgpu,值为false。删除标签不能关闭节点共享GPU功能。
步骤二:为添加标签的节点安装共享GPU组件
登录容器服务管理控制台,在左侧导航栏选择 。
在应用市场页面,搜索ack-cgpu应用,然后单击ack-cgpu应用的卡片。
在ack-cgpu页面,单击一键部署,在基本信息页签,选择集群和命名空间,输入发布名称,然后单击下一步。
在参数配置页签,设置相应参数,然后单击确定。
登录Master节点,执行以下命令,验证cGPU组件是否安装成功。关于如何登录Master节点,请参见使用VNC登录实例。
helm get manifest cgpu -n kube-system | kubectl get -f -
出现以下结果输出时,说明cGPU组件安装成功。
NAME SECRETS AGE serviceaccount/gpushare-device-plugin 1 39s serviceaccount/gpushare-schd-extender 1 39s NAME AGE clusterrole.rbac.authorization.k8s.io/gpushare-device-plugin 39s clusterrole.rbac.authorization.k8s.io/gpushare-schd-extender 39s NAME AGE clusterrolebinding.rbac.authorization.k8s.io/gpushare-device-plugin 39s clusterrolebinding.rbac.authorization.k8s.io/gpushare-schd-extender 39s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/gpushare-schd-extender NodePort 10.6.13.125 <none> 12345:32766/TCP 39s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/cgpu-installer 4 4 4 4 4 cgpu=true 39s daemonset.apps/device-plugin-evict-ds 4 4 4 4 4 cgpu=true 39s daemonset.apps/device-plugin-recover-ds 0 0 0 0 0 cgpu=false 39s daemonset.apps/gpushare-device-plugin-ds 4 4 4 4 4 cgpu=true 39s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/gpushare-schd-extender 1/1 1 1 38s NAME COMPLETIONS DURATION AGE job.batch/gpushare-installer 3/1 of 3 3s 38s