本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon ECR 中创建缓存提取规则
对于包含您要在 Amazon ECR 私有注册表中缓存的映像的每个上游注册表,您必须创建缓存提取规则。
对于需要身份验证的上游注册表,您必须以 Secrets Manager 密钥存储凭证。您可以使用现有的 密钥或创建一个新密钥。您可以在 Amazon ECR 控制台或 Secrets Manager 控制台中创建 Secrets Manager 密钥。要使用 Secrets Manager 控制台而不是 Amazon ECR 控制台创建 Secrets Manager 密钥,请参阅以 Amazon Secrets Manager 密钥存储上游存储库凭证。
先决条件
-
请验证您是否拥有创建缓存提取规则的适当 IAM 权限。有关信息,请参阅将上游注册表与 Amazon ECR 私有注册表同步所需的 IAM 权限。
-
对于需要身份验证的上游注册表:如果要使用现有密钥,则请验证 Secrets Manager 密钥是否满足以下要求:
-
密钥的名称以
ecr-pullthroughcache/
开头。Amazon Web Services Management Console 仅显示带有ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。 -
密钥所在的账户和区域必须与缓存提取规则所在的账户和区域相匹配。
-
要创建缓存提取规则 (Amazon Web Services Management Console)
以下步骤演示如何使用 Amazon ECR 控制台创建缓存提取规则和 Secrets Manager 密钥。要使用 Secrets Manager 控制台创建密钥,请参阅以 Amazon 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:配置身份验证页面上,对于上游凭证,您必须以 Amazon Secrets Manager 密钥存储 Docker Hub 的身份验证凭证。您可以指定现有密钥,也可以使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 Amazon 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
Amazon Web Services Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 Amazon 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 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:配置身份验证页面上,对于上游凭证,您必须以 Amazon Secrets Manager 密钥存储 GitHub 容器注册表的身份验证凭证。您可以指定现有密钥,也可以使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 Amazon 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
Amazon Web Services Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 Amazon 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 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:配置身份验证页面上,对于上游凭证,您必须以 Amazon Secrets Manager 密钥存储 Microsoft Azure 容器注册表的身份验证凭证。您可以指定现有密钥,也可以使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 Amazon 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。
注意
Amazon Web Services Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 Amazon 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 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:配置身份验证页面上,对于上游凭证,您必须以 Amazon Secrets Manager 密钥存储 GitLab 容器注册表的身份验证凭证。您可以指定现有密钥,也可以使用 Amazon ECR 控制台创建新密钥。
-
要使用现有密钥,请选择使用现有 Amazon 密钥。对于密钥名称,使用下拉列表选择现有的密钥,然后选择下一步。有关使用 Secrets Manager 控制台创建 Secrets Manager 密钥的更多信息,请参阅以 Amazon Secrets Manager 密钥存储上游存储库凭证。
注意
Amazon Web Services Management Console 仅显示名称使用
ecr-pullthroughcache/
前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。 -
要创建新密钥,请选择创建 Amazon 密钥,执行以下操作,然后选择下一步。
-
在密钥名称中,请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。
-
在 GitLab 容器注册表用户名中,请指定 GitLab 容器注册表用户名。
-
在 GitLab 容器注册表访问令牌中,请指定 GitLab 容器注册表访问令牌。有关创建 GitLab 容器注册表访问令牌的更多信息,请参阅 GitLab 文档中的 Personal access tokens
、Group access tokens 或 Project access tokens 。
-
-
-
在步骤 3:指定目标页面上,对于 Amazon ECR 存储库前缀,请指定在缓存从源公有注册表中提取的映像时要使用的存储库命名空间,然后选择下一步。
默认情况下,已填充命名空间,但也可以指定自定义命名空间。
-
在步骤 4:审核并创建页面上,审核缓存提取规则配置,然后选择创建。
-
对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。
要创建缓存提取规则 (Amazon CLI)
使用 create-pull-through-cache-rule Amazon CLI 命令为 Amazon ECR 私有注册表创建缓存提取规则。对于需要身份验证的上游注册表,您必须以 Secrets Manager 密钥存储凭证。要使用 Secrets Manager 控制台创建密钥,请参阅以 Amazon 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 凭证的密钥的完整 Amazon 资源名称(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 容器注册表凭证的密钥的完整 Amazon 资源名称(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
后续步骤
创建缓存提取规则后,请执行以下后续步骤:
-
创建存储库创建模板。有了存储库创建模板,在为 Amazon ECR 在缓存提取操作期间代表您创建的新存储库定义设置时,您能拥有控制权。有关更多信息,请参阅 用于控制在缓存提取或复制操作期间创建的存储库的模板。
-
验证缓存提取规则。在验证缓存提取规则时,Amazon ECR 会与上游注册表建立网络连接,验证它是否可以访问包含上游注册表凭证的 Secrets Manager 密钥,以及身份验证是否成功。有关更多信息,请参阅 验证 Amazon ECR 中的缓存提取规则。
-
开始使用缓存提取规则。有关更多信息,请参阅 在 Amazon ECR 中使用缓存提取规则来提取映像。