Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure 容器注册表的制品缓存功能允许您在公共存储库和私有存储库中缓存容器映像。
工件缓存通过 Azure 容器注册表(ACR)实现更快、更可靠的拉取操作。 它使用异地复制和可用性区域支持等功能来提高可用性和更快的映像拉取速度。 可以通过专用网络访问缓存注册表,以符合防火墙配置和符合性标准。
工件缓存解决了公共注册表施加的拉取限制的难题。 建议使用上游源凭据对缓存规则进行身份验证。 然后,可以从本地 ACR 拉取映像,有助于减轻速率限制的影响。
项目缓存功能在 “基本”、“ 标准”和 “高级”服务层级中可用。 可以在 Azure 门户中 或使用 Azure CLI 启用项目缓存规则。
术语
使用工件缓存时,了解以下术语很有帮助:
缓存规则:你创建的规则,用于将项目从受支持的存储库拉取到缓存中。 缓存规则包含四个部分:
-
规则名称:缓存规则的名称。 例如,
Hello-World-Cache。 - 源:源注册表的名称。
-
存储库路径:要查找和检索要缓存的项目的存储库的源路径。 例如,
dockerhub.azk8s.cn/library/hello-world。 -
新的 ACR 存储库命名空间:用于存储项目的新存储库路径的名称。 例如,
hello-world。 ACR 实例中尚不存在存储库。
-
规则名称:缓存规则的名称。 例如,
凭据:为源注册表设置的用户名和密码。 需要凭据才能使用公共或专用存储库进行身份验证。 凭据包含四个部分:
- 凭据:凭据的名称。
- 源注册表登录服务器:源注册表的登录服务器。
- 源身份验证:用于存储凭据的密钥保管库位置。
- 用户名和密码机密:包含用户名和密码的机密。
当前限制
使用项目缓存时,请记住以下限制:
- 仅当针对可用容器映像至少完成一次映像拉取后,才会发生缓存。 对于每个可用的新映像,必须完成新的映像拉取。 目前,当新标记可用时,工件缓存不会自动拉取映像的新标记。
- 构件缓存最多支持一千个缓存规则。
- 工件缓存规则不能与其他缓存规则重叠。 换句话说,如有适用于某个注册表路径的工件缓存规则,则不能添加与其重叠的另一个缓存规则。
上游支持
构件缓存目前支持以下上游注册表。
警告
要从 Docker Hub 获取内容,您必须使用 Azure CLI 或 Azure 门户 生成凭据集。
某些公共 Docker 中心映像映射到公开访问的命名空间 library。 在这种情况下,如果未包含 library 路径,工件缓存将自动包含它。
| 上游注册表 | 支持 | 可用性 |
|---|---|---|
| Docker Hub | 仅支持经过身份验证的拉取。 | Azure CLI、Azure 门户 |
Docker 强化映像 (dhi.io) |
仅支持经过身份验证的拉取。 | Azure CLI |
Azure 容器注册表(azurecr.cn) |
仅支持经过身份验证的拉取。 | Azure CLI |
| Microsoft 工件注册表 | 仅支持未经过身份验证的拉取。 | Azure CLI、Azure 门户 |
| AWS 弹性容器注册表 (ECR) 公共图库 | 仅支持未经过身份验证的拉取。 | Azure CLI、Azure 门户 |
| GitHub 容器注册表 | 支持经过身份验证和未经身份验证的拉取。 | Azure CLI、Azure 门户 |
| 码头 | 支持经过身份验证和未经身份验证的拉取。 | Azure CLI、Azure 门户 |
Kubernetes 容器映像注册表 (registry.k8s.io) |
支持经过身份验证和未经身份验证的拉取。 | Azure CLI |
Google Artifact Registry (*.pkg.dev) |
仅支持经过身份验证的拉取。 | Azure CLI |
旧版 Google 容器注册表 (gcr.azk8s.cn) |
支持经过身份验证和未经身份验证的拉取。 | Azure CLI |
NVIDIA NGC 容器注册表 (nvcr.io) |
支持经过身份验证和未经身份验证的拉取。 | Azure CLI、Azure 门户 |
Google Artifact Registry 的身份验证方法
若要从专用 Google Artifact Registry (GAR) 设置 Artifact 缓存,我们建议使用服务帐户密钥(在 Google Cloud 控制台中创建)对 GAR 进行身份验证。 可以为服务帐户密钥(例如 3 个月)定义自定义到期日期,并将密钥保存在 Azure 密钥保管库 中。 虽然可以使用访问令牌(从 gcloud CLI 生成)进行身份验证,但不建议与项目缓存一起使用,因为访问令牌会在 1 小时后过期。
获得服务帐户密钥后,将其另存为 Azure 密钥保管库 中的机密。 然后,将凭据集的密码指向此机密。 用户名应设置为:
-
_json_key如果您在创建文件时提供的服务帐户密钥是 JSON 格式,并且您正在使用它。 -
_json_key_base64如果您对帐户密钥文件的所有内容进行 base64 编码。
若想获取关于创建凭据集的更多信息,请按照下一部分的链接操作。