本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon 中创建直通缓存规则 ECR
对于每个包含您要缓存在 Amazon ECR 私有注册表中的图像的上游注册表,您必须创建一条直通缓存规则。
对于需要身份验证的上游注册表,您必须将凭据存储在 Secrets Manager 密钥中。您可以使用现有的 密钥或创建一个新密钥。你可以在亚马逊ECR控制台或 Secrets Manager 控制台中创建 Secrets Manager 密钥。要使用 Secrets Manager 控制台而不是亚马逊ECR控制台创建 Secrets Manager 密钥,请参阅将您的上游存储库凭证存储在 AWS Secrets Manager 密钥中。
先决条件
-
验证您是否具有创建直通缓存规则的适当IAM权限。有关信息,请参阅IAM将上游注册表与 Amazon ECR 私有注册表同步所需的权限。
-
对于需要身份验证的上游注册表:如果要使用现有密钥,请验证 Secrets Manager 密钥是否满足以下要求:
-
机密的名称以开头
ecr-pullthroughcache/
。 AWS Management Console 仅显示带ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。 -
密钥所在的账户和区域必须与拉取缓存规则所在的账户和区域相匹配。
-
要创建缓存提取规则 (AWS Management Console)
以下步骤展示了如何使用亚马逊ECR控制台创建直通缓存规则和 Secrets Manager 密钥。要使用 Secrets Manager 控制台创建密钥,请参阅将您的上游存储库凭证存储在 AWS Secrets Manager 密钥中。
打开 Amazon ECR 控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择要配置私有注册表设置的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Pull through cache(缓存提取)。
-
在 Pull through cache configuration(缓存提取配置)页面上,选择 Add rule(添加规则)。
-
在 “步骤 1:指定源页面” 中,对于 “注册表”,从上游注册表列表中选择 Amazon ECR Public、Kubernetes 或 Quay,然后选择 “下一步”。
-
在 “步骤 2:指定目标页面” 中,在 Amazon ECR 存储库前缀中,指定缓存从源公共注册表提取的图像时要使用的存储库命名空间前缀,然后选择下一步。默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 3:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
打开 Amazon ECR 控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择要配置私有注册表设置的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Pull through cache(缓存提取)。
-
在 Pull through cache configuration(缓存提取配置)页面上,选择 Add rule(添加规则)。
-
在步骤 1:指定来源页面上,对于注册表,选择 Docker Hub,然后选择下一步。
-
在步骤 2:配置身份验证页面上,对于上游凭证,您必须以 AWS Secrets Manager 密钥存储 Docker Hub 的身份验证凭证。您可以指定现有密钥或使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 AWS 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
AWS Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 AWS 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。
-
在 Docker Hub 用户名中,请指定 Docker Hub 用户名。
-
在 Docker Hub 访问令牌中,请指定 Docker Hub 访问令牌。有关如何创建 Docker Hub 访问令牌的更多信息,请参阅 Docker 文档中的 Create and manage access tokens
。
-
-
-
在 “步骤 3:指定目标页面” 中,在 Amazon ECR 存储库前缀中,指定缓存从源公共注册表提取的图像时要使用的存储库命名空间,然后选择下一步。
默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 4:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
打开 Amazon ECR 控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择要配置私有注册表设置的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Pull through cache(缓存提取)。
-
在 Pull through cache configuration(缓存提取配置)页面上,选择 Add rule(添加规则)。
-
在 “步骤 1:指定来源” 页面上,对于 “注册表”,选择 “GitHub 容器注册表”,然后选择 “下一步”。
-
在 “步骤 2:配置身份验证” 页面上,对于上游凭证,您必须将 GitHub 容器注册表的身份验证凭据存储在 AWS Secrets Manager 密钥中。您可以指定现有密钥或使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 AWS 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
AWS Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 AWS 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。
-
对于GitHub 容器注册表用户名,请指定您的 GitHub 容器注册表用户名。
-
对于GitHub 容器注册表访问令牌,请指定您的 GitHub 容器注册表访问令牌。有关创建 GitHub 访问令牌的更多信息,请参阅 GitHub 文档中的管理您的个人访问令牌
。
-
-
-
在 “步骤 3:指定目标页面” 中,在 Amazon ECR 存储库前缀中,指定缓存从源公共注册表提取的图像时要使用的存储库命名空间,然后选择下一步。
默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 4:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
打开 Amazon ECR 控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择要配置私有注册表设置的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Pull through cache(缓存提取)。
-
在 Pull through cache configuration(缓存提取配置)页面上,选择 Add rule(添加规则)。
-
在步骤 1:指定来源页面上,执行以下操作。
-
在注册表中,请选择Microsoft Azure 容器注册表
-
对于源注册表 URL,请指定 Microsoft Azure 容器注册表的名称,然后选择 “下一步”。
重要
您只需要指定前缀,因为系统已代表您填充
.azurecr.io
后缀。
-
-
在步骤 2:配置身份验证页面上,对于上游凭证,您必须以 AWS Secrets Manager 密钥存储 Microsoft Azure 容器注册表的身份验证凭证。您可以指定现有密钥或使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 AWS 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
AWS Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 AWS 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。
-
在 Microsoft Azure 容器注册表用户名中,请指定 Microsoft Azure 容器注册表用户名。
-
在 Microsoft Azure 容器注册表访问令牌中,请指定 Microsoft Azure 容器注册表访问令牌。有关如何创建 Microsoft Azure 容器注册表访问令牌的更多信息,请参阅 Microsoft Azure 文档中的创建令牌 - 门户
。
-
-
-
在 “步骤 3:指定目标页面” 中,在 Amazon ECR 存储库前缀中,指定缓存从源公共注册表提取的图像时要使用的存储库命名空间,然后选择下一步。
默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 4:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
打开 Amazon ECR 控制台,网址为https://console.aws.amazon.com/ecr/
。 -
从导航栏中,选择要配置私有注册表设置的区域。
-
在导航窗格中,选择 Private registry(私有注册表)、Pull through cache(缓存提取)。
-
在 Pull through cache configuration(缓存提取配置)页面上,选择 Add rule(添加规则)。
-
在 “步骤 1:指定来源” 页面上,对于 “注册表”,选择 “ GitLab 容器注册表”,然后选择 “下一步”。
-
在 “步骤 2:配置身份验证” 页面上,对于上游凭证,您必须将 GitLab 容器注册表的身份验证凭据存储在 AWS Secrets Manager 密钥中。您可以指定现有密钥或使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 AWS 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。有关使用 Secrets Manager 控制台创建 Secrets Manager 密钥的更多信息,请参阅将您的上游存储库凭证存储在 AWS Secrets Manager 密钥中。
注意
AWS Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 AWS 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。
-
对于GitLab 容器注册表用户名,请指定您的 GitLab 容器注册表用户名。
-
对于GitLab 容器注册表访问令牌,请指定您的 GitLab 容器注册表访问令牌。有关创建 GitLab 容器注册表访问令牌的更多信息,请参阅 GitLab 文档中的个人访问令
牌、群组 访问令牌或项目访问令牌 。
-
-
-
在 “步骤 3:指定目标页面” 中,在 Amazon ECR 存储库前缀中,指定缓存从源公共注册表提取的图像时要使用的存储库命名空间,然后选择下一步。
默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 4:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
要创建缓存提取规则 (AWS CLI)
使用 create-pull-through-cache- AWS CLI rule 命令为亚马逊ECR私有注册表创建直通缓存规则。对于需要身份验证的上游注册表,您必须以 Secrets Manager 密钥存储凭证。要使用 Secrets Manager 控制台创建密钥,请参阅将您的上游存储库凭证存储在 AWS Secrets Manager 密钥中。
针对每个支持的上游注册表提供以下示例。
以下示例为 Amazon ECR 公共注册表创建了通过缓存规则。它指定了存储库前缀 ecr-public
,这导致使用缓存提取规则创建的每个存储库都具有 ecr-public/
命名方案。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
ecr-public
\ --upstream-registry-url public.ecr.aws \ --regionus-east-2
以下示例为 Kubernetes 公有注册表创建了一个缓存提取规则。它指定了存储库前缀 kubernetes
,这导致使用缓存提取规则创建的每个存储库都具有 kubernetes/
命名方案。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
kubernetes
\ --upstream-registry-url registry.k8s.io \ --regionus-east-2
以下示例为 Quay 公有注册表创建了一个缓存提取规则。它指定了存储库前缀 quay
,这导致使用推送缓存规则创建的每个存储库都具有命名方案 quay/
。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
quay
\ --upstream-registry-url quay.io \ --regionus-east-2
以下示例为 Docker Hub 注册表创建了一个缓存提取规则。它指定了存储库前缀 docker-hub
,这导致使用缓存提取规则创建的每个存储库都具有 docker-hub/
命名方案。您必须指定包含您的 Docker Hub 凭证的密钥的完整亚马逊资源名称 (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
docker-hub
\ --upstream-registry-url registry-1.docker.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
以下示例为 GitHub 容器注册表创建了通过缓存规则。它指定了存储库前缀 docker-hub
,这导致使用缓存提取规则创建的每个存储库都具有 github/
命名方案。您必须指定包含您的 GitHub 容器注册凭证的密钥的完整 Amazon 资源名称 (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
github
\ --upstream-registry-url ghcr.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
以下示例为 Microsoft Azure 容器注册表创建了拉取缓存规则。它指定了存储库前缀 azure
,这导致使用缓存提取规则创建的每个存储库都具有 azure/
命名方案。你必须指定包含你的 Microsoft Azure 容器注册表凭证的密钥的完整亚马逊资源名称 (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
azure
\ --upstream-registry-urlmyregistry
.azurecr.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
以下示例为 GitLab 容器注册表创建了通过缓存规则。它指定了存储库前缀 gitlab
,这导致使用缓存提取规则创建的每个存储库都具有 gitlab/
命名方案。您必须指定包含您的 GitLab 容器注册凭证的密钥的完整 Amazon 资源名称 (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
gitlab
\ --upstream-registry-url registry.gitlab.com \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
后续步骤
创建直通缓存规则后,接下来的步骤如下:
-
创建存储库创建模板。仓库创建模板使您可以控制定义设置,以便在缓存拉取操作期间,Amaz ECR on 代表您创建的新存储库使用这些设置。有关更多信息,请参阅 用于控制在缓存拉取或复制操作期间创建的存储库的模板。
-
验证缓存提取规则。在验证拉取缓存规则时,Amazon ECR 会与上游注册表建立网络连接,验证它是否可以访问包含上游注册表凭证的 Secrets Manager 密钥,并且身份验证已成功。有关更多信息,请参阅 正在验证 Amazon 中的直通缓存规则 ECR。
-
开始使用缓存提取规则。有关更多信息,请参阅 在 Amazon 中使用拉取缓存规则提取图片 ECR。