队列是批量计算套件中的核心概念,批量计算任务将提交至队列进行排队执行。队列用来管理批量计算任务的执行策略,包括任务的排队策略、抢占策略、资源分配等。本文主要描述队列的创建、查看、更新、删除等管理方法。
前提条件
- 已安装批量计算套件的 batch-queue-controller 和 batch-node-controller 组件。详细操作,请参见 安装组件。
- 若需要将队列加入到队列组,请确保已创建队列组。详细操作,请参见 创建队列组。
创建队列
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面单击 创建队列。
- 根据系统提示,配置队列参数。
- ①基本配置
配置项 | 说明 |
---|
基本信息 |
名称 | 根据系统提示的命名规则,设置队列名称。同一个集群内,队列名称须唯一。 |
队列组 | 选择队列所属的队列组,可以为空。队列组内的队列之间可以相互借用资源配额。 |
任务排队策略 | 队列中任务执行的排队策略: - StrictFifo:(默认值)提交至队列的任务严格按照创建时间排序。如果前序提交的任务无法执行,则后序任务即使满足配额需求,也无法执行。
- BestEffortFifo:提交至队列的任务按照创建时间排序,但如果前序提交的任务无法执行,则可以先执行满足配额需求的后序任务。
|
任务抢占策略 | 是否开启队列中任务的配额抢占策略。若开启,则需要配置以下参数: - 队列内抢占策略:当前队列内部任务的资源配额抢占策略。取值如下:
- 不抢占:(默认值)表示当任务无法获取资源进行调度时,可以发起抢占,但不允许抢占相同队列内其他任务的资源。
- 优先级抢占:表示当任务无法获取资源进行调度时,可以发起抢占,可以抢占相同队列内其他低优先级任务的资源。
- 队列组内抢占策略:当前队列在所属队列组内与其他队列的资源配额抢占策略。仅当队列属于某个队列组时生效,取值如下:
- 不抢占:(默认值)表示当前队列的任务,不会抢占所属队列组内其他队列中正在运行的任务资源。
- 优先级抢占:表示当前队列的任务,能够抢占位所属队列组内其他队列中低优先级任务的资源。
- 任意抢占:表示当前队列的任务,能够随意抢占所属队列组内其他队列中任务的资源。
更多任务抢占策略相关介绍,请参见 队列任务资源配额抢占策略说明。 |
命名空间选择 | 队列的命名空间(Namespace)选择器,可以通过 标签(Label)限制当前队列可以处理的任务的所属 Namespace。
根据系统提示的规则,输入标签 键(例如namespace )和 值(例如default )。单击 添加标签,可添加更多标签。 |
镜像缓存配置 |
预加载镜像缓存 | 开启后队列中的任务支持预加载镜像缓存能力,提升任务启动速度。详细的功能介绍,请参见 预加载镜像缓存。 注意 - 当前配置仅当队列中的任务在弹性容器实例(VCI)中运行时生效。
- 该功能需要获取目标镜像仓库的访问权限,您还需要为套件配置相关镜像仓库的访问凭证。详细操作,请参见 预加载镜像缓存配置。
|
- ②资源配置
配置项 | 说明 |
---|
资源组配置 |
资源类型 | 选择当前队列提供的资源类型,包括 CPU 资源、Memory(内存)资源、GPU 资源、Pod 资源。支持多选。 |
资源规格 | 所选资源类型的规格。 - 规格:批量计算为队列提供的计算规格,有如下几种规格:
- Default:不区分云服务器(ECS)或弹性容器实例(VCI)资源类型的默认规格。
- VCI CPU 默认型:VCI 的 通用型 实例规格,默认规格为
vci.u1 。VCI 实例规格介绍,请参见 通用型。
- CPU/Memory/GPU/Pod 配额:设置所选资源类型的配额,包括如下两种配额:
- 队列内可用配额:当前队列内可用的资源配额。
- 队列组间可借用配额:当前队列所在的队列组内,队列之间可以相互借用的资源配额。仅当队列位于某一个队列组内时才会生效。
可以不限制队列组间可借用配额,即当前队列可以在队列组内借用任意资源配额。
|
- 单击 确定,创建队列。
查看队列信息
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,查看本集群下所有队列的基本信息,以及每个队列管理的任务执行状态。
- 单击队列名称进入 队列详情 页,可查看队列的详细信息(包括基本信息、队列内任务执行统计、资源配额及用量),以及队列下的任务列表。
更新队列
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到需要更新配置的队列,单击对应 操作 列下的 更新。
- 根据系统提示的可更新参数,更新队列配置。详细的参数说明,请参见本文上方 创建队列。
删除队列
注意
仅当队列中全部任务执行完成之后,当前队列才会被删除。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到需要删除的队列,在对应 操作 列下选择
...
> 删除。 - 在系统弹出的二次确认对话框中确认信息,单击 删除,删除该队列。
暂停队列
暂停队列是指不允许新的任务加入到队列中并运行。暂停队列后队列中正在运行的任务不受影响。
注意
使用暂停队列的能力前,请确保 batch-queue-controller 组件已升级到 v1.3.1 及以上版本。详细操作,请参见 升级组件。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到需要暂停的队列,在对应 操作 列下选择
...
> 暂停。 - 在系统弹出的二次确认对话框中确认信息,单击 确定,暂停该队列,禁止新任务加入到该队列。
恢复队列
当队列处于 暂停 状态时,可以对队列进行 恢复 操作。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到带有 暂停 标识的队列,在对应 操作 列下选择
...
> 恢复。
- 在系统弹出的二次确认对话框中确认信息,单击 确定,从暂停状态恢复该队列,允许新的任务加入到队列中运行。
将队列加入到队列组
队列未加入任何队列组时,可按如下步骤说明将队列加入队列组。一个队列仅支持加入一个队列组。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到需要更新配置的队列,单击对应 操作 列下的 加入队列组。
- 在系统弹出的对话框中,为当前队列选择 目标队列组,然后单击 确定,将队列加入到指定队列组。
从队列组中移出队列
已加入队列组的队列,可以将其从队列组中移出。
- 登录 容器服务控制台。
- 在左侧导航栏中选择 集群,单击目标集群名称。
- 在集群管理页面的左侧导航栏中,选择 批量计算 > 队列管理。
- 在 队列管理 页面,找到需要更新配置的队列,在对应 操作 列下选择
...
> 移出队列组。 - 在系统弹出的二次确认对话框中确认信息,单击 确定,从队列组中移出该队列。