镜像缓存概述

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

功能简介

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

经实测,以使用Docker Hub的flink镜像(约386.26 MB)创建ECI实例为例,正常创建过程中,镜像准备阶段需要耗时50s,使用镜像缓存后,镜像准备阶段无需耗时,可以极大节约实例启动耗时。

重要

具体提升速度由ECI实例中使用的镜像个数、镜像大小和镜像仓库网络因素等决定。

创建方式

镜像缓存的创建分为手动创建和自动创建两种方式。

重要

推荐使用自动创建的镜像缓存,可以节约使用成本。但对于首次创建就需要加速创建ECI实例的场景,需提前手动创建镜像缓存。

手动创建

您可以根据需要,自行设置名称、大小等参数来创建镜像缓存。过程如下:

image
  • 一个镜像缓存对应一份快照,手动创建的镜像缓存快照由您自行管理。

  • 创建过程中,系统将创建一个ECI实例(2 vCPU、4 GiB内存),并挂载一块ESSD PL1类型的云盘用于中转创建镜像缓存对应的快照。创建完成后,该实例和云盘将被自动释放。

  • 极速镜像缓存功能用于缩短镜像缓存的创建时长。开启该功能后,系统将启用快照极速可用能力,临时创建一份本地快照。本地快照创建完成即可使用镜像缓存功能。

    说明

    本地快照创建完成后,系统将自动开始创建标准快照,在此期间,镜像缓存对应使用本地快照;待标准快照创建完成后,系统将自动删除本地快照,在此之后,镜像缓存对应使用标准快照。

  • 镜像缓存复用功能用于加快镜像缓存的制作速度。开启该功能后,在创建镜像缓存的过程中,系统将自动匹配已有镜像缓存,如果新的镜像缓存与已有镜像缓存存在重复的镜像层,新的镜像缓存将复用已有镜像缓存的镜像层,从而加速镜像缓存的创建。

自动创建

创建ECI实例时,如果开启了自动匹配镜像缓存,则在未匹配到镜像缓存的情况下,系统会在创建ECI实例的同时,自动创建一个镜像缓存。过程如下:

image
  • 一个镜像缓存对应一份快照,自动创建的镜像缓存快照由阿里云管理。

  • 创建过程中,系统将创建一个ECI实例,并使用ECI实例自带的存储空间来中转创建镜像缓存对应的快照。创建完成后,该实例将被自动释放。

    说明

    每个ECI实例默认有30 GiB的临时存储空间可用于创建镜像缓存,如果您的镜像大小超出了30 GiB,需要额外声明临时存储空间。

对比

手动创建和自动创建的镜像缓存在大小、保留时长等方面均有差异,对比如下表所示。

对比项

手动创建

自动创建

名称

可以自定义设置名称。

名称由系统自动生成,格式为auto-create-for-实例ID

大小

默认为20 GiB,可以自定义设置大小。

默认为30 GiB。如果创建ECI实例时声明了临时存储空间,则镜像缓存大小=30 GiB+临时存储空间大小。

保留时长

默认永久保留,可以自行设置保留时长(单位为天),过期后将被自动删除。

默认由阿里云管理保留时长。

  • 对于自动创建后从未使用过的镜像缓存,7天后会被自动删除。

  • 对于自动创建后使用过的镜像缓存,当距离上一次使用的时间超过30天时,会被自动删除。

镜像缓存复用

可以开启镜像缓存复用来复用已有镜像层,加快镜像缓存的制作速度。

不支持配置该功能。

极速镜像缓存

可以开启极速镜像缓存来临时创建一份本地快照,缩短镜像缓存的创建时长。

不支持配置该功能。

配额限制

可以调用ListUsage接口,或者在控制台的权益配额页面查看配额。

如果配额无法满足需求,请提交工单申请提升配额。

可以调用ListUsage接口查看配额。

如果配额无法满足需求,请提交工单申请提升配额。

淘汰策略

默认情况下,当数量达到配额限制时,无法继续手动创建镜像缓存。

支持通过OpenAPI(CreateImageCache或UpdateImageCache接口)将某个镜像缓存的淘汰策略(EliminationStrategy参数)配置为LRU,表示当数量达到配额限制时,系统可以自动删除最不常用的LRU镜像缓存。

当数量达到配额限制时,系统会遵循LRU规则,自动删除最不常用的镜像缓存。

使用成本

收取创建费用和使用费用。

仅收取使用费用,不收取创建费用。

使用方式

使用镜像缓存可以加快ECI实例的创建。创建ECI实例时,支持自动匹配和明确指定镜像缓存两种方式:

使用方式

说明

自动匹配

自动匹配使用最优的镜像缓存。系统将按照以下顺序进行匹配:

  1. 过滤筛选出您在当前地域下的所有镜像缓存,且镜像缓存的大小满足ECI实例临时存储空间大小的限制。

  2. 根据匹配策略选择最优的镜像缓存,匹配策略的优先级从高到低依次为:镜像匹配度、镜像大小、创建时间。

    • 镜像匹配度:优先选择匹配度高的镜像缓存,匹配度指的是ECI实例和镜像缓存在镜像仓库和版本上的匹配情况。

    • 镜像大小:优先选择镜像大小最接近的镜像缓存。

    • 创建时间:优先选择最新创建的镜像缓存。

说明

如果没有匹配到镜像缓存,系统将在创建ECI实例的同时自动创建镜像缓存。创建时将正常拉取镜像,建议您将容器的镜像拉取策略配置为按需拉取(IfNotPresent),以避免镜像层重复下载,影响镜像缓存的使用效果。

明确指定

明确指定使用的镜像缓存。该镜像缓存必须为创建完成(Ready)状态。

注意事项

  • 单个镜像缓存最多包含20个镜像。

  • 创建镜像缓存需要拉取容器镜像,因此创建时长由镜像个数、镜像大小、网络等多种因素决定。

  • 手动创建镜像缓存时采用您指定的容器镜像,自动创建镜像缓存时采用实例中所声明的容器镜像。

    • 如果镜像为私有镜像(非阿里云容器镜像服务ACR托管的镜像),则需要提供私有镜像仓库的访问凭证,包括地址、用户名和密码。

    • 如果镜像需要通过公网拉取(如Docker官方镜像),则需要配置EIP或者NAT来访问公网。更多信息,请参见为ECI实例配置公网连接

    • 如果镜像由于远程仓库超时等原因导致拉取失败,推荐您使用容器镜像服务ACR,将镜像上传至阿里云仓库。

  • 对于手动创建的镜像缓存,建议在创建时设置保留时长,以免产生不必要的快照费用。对于自动创建的镜像缓存,由阿里云管理对应的快照,您无需关注保留时长。

  • 创建镜像缓存后,您可以通过其制作事件了解镜像缓存的制作过程,系统最多可以保留最新的50条制作事件。

计费说明

操作阶段

手动创建的镜像缓存

自动创建的镜像缓存

创建镜像缓存

涉及以下计费项:

  • 临时资源(ECI实例和云盘)费用

  • 快照费用

不收费

使用镜像缓存

云盘费用

如果镜像缓存大于30 GiB,需增加临时存储空间并为其付费。

更多信息,请参见镜像缓存计费