Fluid提供了数据缓存亲和性调度优化能力,根据数据集排布的Pod调度策略,支持通过webhook机制将调度信息注入到业务Pod中,从而实现将业务Pod优先调度到有数据缓存能力的节点。
在智算场景下,创建训练任务指定数据集时,通过调度优化策略将训练任务优先调度到缓存数据节点,可以提高数据同节点访问概率,获取最大程度访问效率。
前提条件
已完成AI套件安装,弹性数据集组件运行正常。
已创建数据集并开启加速。
数据集加速状态为已加速或已预热。
功能介绍
基于Mutating Webhook机制,Fluid可以在 业务Pod 创建时拦截,检测是否使用 Fluid PVC,从而为应用Pod注入所需数据缓存的亲和性信息(fluid.io/s-{namespace}-{dataset})。当Kubernetes调度器调度应用Pod时,可以优先选择有缓存数据的节点。
注意
如果应用Pod在spec.affinity或spec.nodeSelector中自定义了与fluid调度相关的亲和性信息,此时以应用Pod自身配置为准,Fluid不会注入相关的亲和性调度配置信息。
操作步骤
2、训练任务使用加速数据集
登录云容器引擎管理控制台;
在集群列表页点击进入指定集群;
进入主菜单 智算套件 > AI应用列表 > 离线训练 > 创建AI应用;
进入离线训练应用创建页面,在“基本信息”栏添加标签:
标签名为:fuse.serverful.fluid.io/inject
标签值为:true
进入离线训练应用创建页面,进行相关信息配置,详细参考创建训练任务;
配置训练数据:
点击“选择数据集”,在弹出页面选择“私有数据集”,选择已加速的数据集名称:
点击“选择数据集版本”,在弹出页面选择“私有数据集”,选择已加速的数据集名称:
继续其他配置,完成训练应用创建。
查看训练任务调度信息
进入主菜单 > 工作负载 > 容器组,查看训练任务pod对应的yaml信息,已经注入缓存节点调度信息:
进入主菜单 > 工作负载 > 容器组,可以看到训练任务pod 所在节点与fluid数据节点一致。