使用镜像缓存加速ACS Pod启动

使用镜像缓存(ImageCache)创建ACS Pod可以加速拉取镜像,减少ACS Pod的启动耗时。本文介绍镜像缓存的基本功能、创建和使用方式、计费说明等。

功能介绍

在运行容器前,ACS Pod需要先拉取指定的容器镜像,但因网络和容器镜像大小等因素,镜像拉取耗时往往成了ACS Pod启动的主要耗时。为加速实例的启动速度,ACS提供镜像缓存功能。通过预先将需要使用的镜像制作成镜像缓存,然后基于该镜像缓存来创建ACS Pod,避免或者减少镜像层的下载,从而提升实例的启动速度。

具体提升速度由 ACS Pod 中使用的容器镜像大小和镜像仓库网络因素等决定。
image

每个镜像缓存中可以包含一个镜像。镜像缓存状态制作中表示正处于制作镜像缓存阶段。稍等一段时间,当状态变成制作完成后即可支持使用镜像缓存。

具体镜像缓存制作时间与容器镜像大小与配置的网络带宽相关。如果由于网络不通、认证失败、仓库/Tag 不存在等原因,可能会导致超时制作失败。

计费说明

制作镜像缓存阶段

无镜像缓存制作中转资源费用,地域级别容器镜像缓存 20 个免费。当某个地域超过 20 个默认额度限制后,收费如下:

容器镜像缓存存储费用 = 单价 * 容器镜像缓存大小 * 容器镜像缓存存活时长

  • 单价:0.18 元/GiB/月。

  • 容器镜像缓存大小:对应容器镜像拉取解压后的大小,单位为 GiB。

  • 容器镜像缓存存活时长:容器镜像缓存创建完成后开始计费,直至删除容器镜像缓存后停止计费。

使用镜像缓存阶段

此阶段的费用包含使用了镜像缓存的Pod全生命周期加速费用,计费时长与当前 Pod 的运行时长一致。

容器镜像缓存加速费用 = 单价 * 容器镜像缓存大小 *

  • 单价:0.00231 元/GiB/小时

  • 容器镜像缓存大小:对应容器镜像拉取解压后的大小,单位为 GiB。

  • 所有Pod的运行时长总和:当基于容器镜像缓存启动 Pod,则累计 Pod 拉取镜像、启动、运行的全生命周期时长(容器镜像缓存的付费时长与 Pod 自身的计费时长保持一致)。在 T0 小时,如果有 3 个 Pod 基于容器镜像缓存快速拉起,Pod 1 本身计费时长 3600 秒,Pod 2 本身计费时长 3000 秒,Pod 3 本身计费时长 600 秒。则一共加速时长为 3600 + 3000 + 600 = 7200 秒。

注意事项

  • 目前 ACS 镜像缓存功能在白名单邀测阶段,可提交工单申请开通。

  • 首次创建镜像缓存会为用户创建Service Linked Role,因此需要确保调用创建的子账号具有ram:CreateServiceLinkedRole权限。

  • 制作完成后会显示镜像缓存大小,该数值为容器镜像解压缩后完整文件和容器镜像缓存额外索引文件的总大小。镜像缓存目前支持解压前不超过500GiB的镜像制作。

  • 镜像缓存单地域默认配额为200,可提交工单申请提升。

  • 目前镜像缓存支持的地域:华北2(北京)华东2(上海)华东1(杭州)华北6(乌兰察布)

  • 目前镜像缓存支持的镜像类型:linux/amd64。

  • 目前 GPU 场景镜像缓存支持的卡型:G59、G49E、L20(GN8IS)。

创建镜像缓存

控制台

  1. 登录容器计算服务控制台,在左侧导航栏选择镜像缓存

  2. 镜像缓存页面,单击页面左上角的创建镜像缓存

  3. 参考页面提示完成地域、镜像缓存与访问凭证、网络连通性配置,并确认创建。

    创建镜像缓存后,可以通过其制作事件了解镜像缓存的制作过程。

    配置项

    说明

    示例值

    地域

    目前镜像缓存支持的地域。

    华北2(北京)

    镜像缓存与访问凭证

    • 镜像缓存名:长度为[2, 128]个英文小写字母、数字或者连字符(-),不能以连接字符开始或结尾。

    • 镜像:支持从容器镜像服务企业版、容器镜像服务个人版、制品中心选择目标镜像和版本。

    • 访问凭证:同账号ACR仓库支持自动免密,无需填写访问凭证。若使用非阿里云容器镜像服务ACR托管的镜像,需指定Server为镜像仓库域名地址,并配置对应的镜像仓库用户名和镜像仓库密码。

    • 镜像缓存名:image-cache-*****

    • 镜像:egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.9.0.1-pytorch2.7-cu128-20250612

    网络连通性配置

    选择以下方式拉取需要被缓存的容器镜像。

    • 公网方式:

      • 专有网络绑定公网 NAT 网关,并为所选交换机配置 SNAT 规则。

      • 自动创建或者使用已有的弹性公网 IP

        自动创建的弹性公网IP将按照实际产生的流量收费,并在镜像缓存创建完成后自动释放,具体收费细则请参见计费概述
    • VPC内网方式:推荐将容器镜像上传到相应地域的容器镜像服务ACR企业版实例,通过内网 VPC 地址拉取镜像。

    请按实际网络信息配置。

OpenAPI

使用镜像缓存

Pod注解

说明

image.alibabacloud.com/enable-image-cache: "true"

Pod开启镜像缓存匹配能力。

功能开启后,Pod将自动匹配使用最优的镜像缓存:

  • 镜像匹配度:选择镜像名完全匹配的镜像缓存。

  • 创建时间:优先选择创建时间最近且可用的镜像缓存。

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 容器组,然后单击使用YAML创建资源

  2. 使用以下YAML创建Pod并添加注解开启镜像缓存匹配能力。

    请确保网络配置和密钥信息能够访问到所配置的镜像仓库,目前imagePullPolicyAlways。
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        name: hello-pod
      name: hello-pod
      annotations:
        image.alibabacloud.com/enable-image-cache: "true"
    spec:
      containers:
        - image: egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.9.0.1-pytorch2.7-cu128-20250612 # 请替换为实际镜像缓存地址  
          command: ["/bin/sleep", "infinity"]
          imagePullPolicy: Always
          name: hello-pod
          ports:
            - containerPort: 8080
              protocol: TCP
          resources: {}
          securityContext:
            capabilities: {}
            privileged: false
          terminationMessagePath: /dev/termination-log
      dnsPolicy: ClusterFirst
      restartPolicy: Always
  3. 创建成功后,单击Pod名称进入基本信息页面。开启镜像缓存匹配能力之后,创建的Pod会根据镜像名称尝试匹配镜像缓存,匹配成功的Pod会自动追加当前匹配的镜像缓存的注解。

    功能

    参数

    示例值

    说明

    镜像缓存命中信息

    image.alibabacloud.com/matched-image-caches

    [{"imageCacheId":"imc-*****t15xuii6tz*****","size":30}]

    命中的镜像缓存ID及大小(GiB)。