本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将上游注册表与 Amazon ECR 私有注册表同步
使用缓存提取规则,您可以将上游注册表的内容与 Amazon ECR 私有注册表同步。
Amazon ECR 目前支持为以下上游注册表创建缓存提取规则。
-
Docker Hub、Microsoft Azure 容器注册表、GitHub 容器注册表和 GitLab 容器注册表(需要身份验证)
-
Amazon ECR Public、Kubernetes 容器映像注册表和 Quay(不需要身份验证)
对于 GitLab 容器注册表,Amazon ECR 仅在 GitLab 软件即服务产品 GitLab.com 上支持缓存提取。
对于需要身份验证的上游注册表,您必须以 Amazon Secrets Manager 密钥存储凭证。通过 Amazon ECR 控制台,您可以轻松地为每个经过身份验证的上游注册表创建 Secrets Manager 密钥。有关使用 Secrets Manager 控制台创建 Secrets Manager 密钥的更多信息,请参阅以 Amazon Secrets Manager 密钥存储上游存储库凭证。
为上游注册表创建缓存提取规则后,只需使用 Amazon ECR 私有注册表 URI 从该上游注册表中提取映像即可。然后,Amazon ECR 会创建一个存储库,在私有注册表中缓存该映像。在随后的具有给定标签的缓存映像的提取请求中,Amazon ECR 会检查上游注册表,看看是否有新版本的具有该特定标签的映像,并且尝试至少每 24 小时更新一次私有注册表中的映像。
存储库创建模板
Amazon ECR 已支持存储库创建模板。这样的话,在为 Amazon ECR 使用缓存提取规则代表您创建的新存储库指定初始配置时,您有控制权。每个模板都包含存储库命名空间前缀,用于将新存储库与特定模板匹配。模板可以指定所有存储库设置的配置,包括基于资源的访问策略、标签不变性、加密和生命周期策略。存储库创建模板中的设置仅在存储库创建期间应用,对现有存储库或使用任何其他方法创建的存储库没有任何影响。有关更多信息,请参阅 用于控制在缓存提取或复制操作期间创建的存储库的模板。
使用缓存提取规则的注意事项
使用 Amazon ECR 缓存提取规则时,请考虑以下内容。
-
以下区域不支持创建缓存提取规则。
-
中国(北京) (
cn-north-1
) -
中国(宁夏) (
cn-northwest-1
) -
AmazonGovCloud (US-East)
us-gov-east-1
-
AmazonGovCloud (US-West)
us-gov-west-1
-
-
Amazon Lambda 不支持使用缓存提取规则从 Amazon ECR 提取容器映像。
-
如果使用提取缓存提取镜像,首次提取镜像时不支持 Amazon ECR FIPS 服务终端节点。但是,使用 Amazon ECR FIPS 服务终端节点可以处理后续提取。
-
当通过 Amazon ECR 私有注册表 URI 提取缓存的映像时,映像提取由 Amazon IP 地址启动。这可以确保映像提取不被计入上游注册表所实施的任何提取率配额。
-
当通过 Amazon ECR 私有注册表 URI 提取缓存的映像时,Amazon ECR 至少每 24 小时检查一次上游存储库,以验证缓存的映像是否为最新版本。如果上游注册表中有较新的映像,Amazon ECR 会尝试更新缓存的映像。此计时器基于缓存镜像的最后一次提取。
-
如果 Amazon ECR 出于任何原因无法从上游注册表更新映像,并且映像已提取,则系统仍会提取最后缓存的映像。
-
在创建包含上游注册表凭证的 Secrets Manager 密钥时,密钥名称必须使用
ecr-pullthroughcache/
前缀。密钥还必须与缓存提取规则位于相同的账户和区域。 -
当使用缓存提取规则提取多架构镜像时,清单列表和清单列表中引用的每个镜像都会被提取到 Amazon ECR 存储库中。如果您只想提取特定架构,则可以使用与架构关联的镜像摘要或标签,而不是与清单列表关联的标签来提取镜像。
-
Amazon ECR 使用服务相关的 IAM 角色,为 Amazon ECR 提供所需的权限,以创建存储库、检索用于身份验证的 Secrets Manager 密钥,以及代表您推送缓存映像。服务相关 IAM 角色在创建缓存提取规则时自动创建。有关更多信息,请参阅 用于提取缓存的 Amazon ECR 服务相关角色。
-
默认情况下,提取缓存映像的 IAM 主体具有通过其 IAM policy 授予的权限。您可以使用 Amazon ECR 私有注册表权限策略进一步限定 IAM 实体的权限范围。有关更多信息,请参阅 使用注册表权限。
-
使用缓存提取工作流创建的 Amazon ECR 存储库与任何其他 Amazon ECR 存储库受到同等对待。支持所有存储库功能,例如复制和镜像扫描。
-
当 Amazon ECR 使用提取缓存操作代表您创建新存储库时,除非存在匹配的存储库创建模板,否则以下默认设置将应用于存储库。您可以使用存储库创建模板,定义 Amazon ECR 代表您创建的存储库所应用的设置。有关更多信息,请参阅 用于控制在缓存提取或复制操作期间创建的存储库的模板。
-
标签不变性 – 已关闭,标签可变、可被覆盖。
-
加密 – 使用默认
AES256
加密。 -
存储库权限 – 已忽略,不应用任何存储库权限策略。
-
生命周期策略 – 已忽略,不应用任何生命周期策略。
-
资源标签 – 已忽略,不应用任何资源标签。
-
-
使用缓存提取规则为存储库启用映像标签不变性,这将阻止 Amazon ECR 使用相同的标签更新映像。
-
首次使用缓存提取规则提取映像时,可能需要通往互联网的路由。在某些情况下,需要通往互联网的路由,因此最好设置一条这样的路由,以免出现任何故障。因此,如果您已将 Amazon ECR 配置为使用 Amazon PrivateLink 的接口 VPC 端点,则需要确保首次提取有通往互联网的路由。一种方法是在同个 VPC 中创建带有互联网网关的公有子网,然后将流至互联网的所有出站流量从私有子网路由到公有子网。使用缓存提取规则进行的后续映像提取不需要此操作。有关更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的示例路由选项。