You need to enable JavaScript to run this app.
导航

预加载镜像缓存

最近更新时间2024.04.16 15:12:51

首次发布时间2024.01.17 11:03:58

本文主要介绍了在批量计算环境中,如何通过预加载镜像缓存的方式,优化任务的启动时间和提高集群的资源利用率。

说明

该功能目前处于 公测 阶段。

背景信息

在大规模数据处理和计算的场景中,批量计算是一种常见的解决方案。它可以将多个任务(Job)批量提交到计算集群中,统一调度和管理资源,提高计算效率。然而,任务的启动时间往往是影响整体性能的一个关键因素。为了解决这一问题,批量计算套件集成弹性容器实例(VCI)镜像缓存能力,在队列维度为批量计算任务所使用的高频镜像提前创建镜像缓存,使得后续 VCI Pod 可以快速命中镜像缓存,提高 VCI Pod 的拉起速度。

使用限制

  • 该能力仅当批量计算任务在 VCI 中运行时生效。
  • 已创建的镜像缓存若在 2 天内未被任何任务使用,则系统会清理该镜像缓存。

预加载镜像缓存策略

  • 分析阶段
    • 触发时机:为 batch-queue-controller 组件使能预加载镜像缓存能力后,组件根据内部预置算法定时触发分析。
    • 分析范围:根据内部预置算法,自动选取部分任务。
    • 选择范围:在“分析范围”选取的任务中,根据任务镜像出现的频率选取部分任务镜像。
  • 创建阶段
    • 触发时机:“分析阶段”已选出需要进行镜像缓存的任务镜像时,触发创建镜像缓存。
    • 存储策略:每个火山引擎账号最多支持存在 20 个镜像缓存,且 2 天内未被任何任务使用的镜像缓存会被系统清理。

实现预加载镜像缓存的步骤

  1. 为 batch-queue-controller 组件使能预加载镜像缓存能力。
    1. 登录 容器服务控制台
    2. 左侧导航栏单击 集群,找到批量计算业务相关集群,然后单击集群名称。
    3. 在集群管理页面左侧导航栏选择 工作负载 > 无状态负载,从命名空间下拉框中选择 kueue-system,找到 batch-queue-controller 组件对应的无状态负载(Deployment):kueue-controller-manager,更新其 YAML 文件。

      说明

      开通批量计算套件安装 batch-queue-controller 组件后,系统在 kueue-system 命名空间下自动生成名称为 kueue-controller-manager 的 Deployment。

      alt
    4. 在 kueue-controller-manager 的 YAML 文件中,修改 batch-queue-controller 组件启动参数,增加--enable-image-cache=true字段,表示为组件使能预加载镜像缓存能力。
      示例代码片段如下所示:
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: kueue-controller-manager
        namespace: kueue-system
      spec:
        template:
          spec:
            containers:
            - args:
              - --config=controller_manager_config.yaml
              - --gang-scheduling=false
              - --enable-profiling=true
              - --enable-image-cache=true
              - --zap-log-level=2	
      
      更新 YAML 文件后,batch-queue-controller 组件会滚动更新并按照本文上方 预加载镜像缓存策略 定时分析。
  2. 准备任务镜像。
    需要准备批量计算任务需要使用的镜像。批量计算套件支持使用火山引擎镜像仓库(CR)中的镜像,也支持使用第三方镜像仓库中的镜像。

    说明

    • 使用 CR 中的镜像时,上传镜像操作,请参见 推送和拉取镜像
    • 使用第三方镜像仓库中的镜像时,请确保对该镜像仓库及其下命名空间等拥有读写权限。
  3. 配置镜像访问凭证。
    从批量计算套件维度,配置目标镜像仓库的访问凭证。详细操作,请参见 预加载镜像缓存配置
    alt
  4. 开启 预加载镜像缓存 功能。
    配置批量计算队列时开启 预加载镜像缓存 功能。该队列下的任务,均可以按照预加载镜像策略创建镜像缓存。详细操作,请参见 队列
    alt
  5. 使用预加载镜像。
    批量计算套件根据策略创建了镜像缓存后,在后续创建使用相同镜像的任务时,将加速镜像的拉取,减少任务的启动时间。详细操作,请参见 任务管理