使用 Azure 容器注册表中的工件缓存优化映像拉取

Azure 容器注册表的制品缓存功能允许您在公共存储库和私有存储库中缓存容器映像。

工件缓存通过 Azure 容器注册表(ACR)实现更快、更可靠的拉取操作。 它使用异地复制和可用性区域支持等功能来提高可用性和更快的映像拉取速度。 可以通过专用网络访问缓存注册表,以符合防火墙配置和符合性标准。

工件缓存解决了公共注册表施加的拉取限制的难题。 建议使用上游源凭据对缓存规则进行身份验证。 然后,可以从本地 ACR 拉取映像,有助于减轻速率限制的影响。

项目缓存功能在 “基本”、“ 标准”“高级”服务层级中可用。 可以在 Azure 门户中 或使用 Azure CLI 启用项目缓存规则。

术语

使用工件缓存时,了解以下术语很有帮助:

  • 缓存规则:你创建的规则,用于将项目从受支持的存储库拉取到缓存中。 缓存规则包含四个部分:

    • 规则名称:缓存规则的名称。 例如,Hello-World-Cache
    • :源注册表的名称。
    • 存储库路径:要查找和检索要缓存的项目的存储库的源路径。 例如,dockerhub.azk8s.cn/library/hello-world
    • 新的 ACR 存储库命名空间:用于存储项目的新存储库路径的名称。 例如,hello-world。 ACR 实例中尚不存在存储库。
  • 凭据:为源注册表设置的用户名和密码。 需要凭据才能使用公共或专用存储库进行身份验证。 凭据包含四个部分:

    • 凭据:凭据的名称。
    • 源注册表登录服务器:源注册表的登录服务器。
    • 源身份验证:用于存储凭据的密钥保管库位置。
    • 用户名和密码机密:包含用户名和密码的机密。

当前限制

使用项目缓存时,请记住以下限制:

  • 仅当针对可用容器映像至少完成一次映像拉取后,才会发生缓存。 对于每个可用的新映像,必须完成新的映像拉取。 目前,当新标记可用时,工件缓存不会自动拉取映像的新标记。
  • 构件缓存最多支持一千个缓存规则。
  • 工件缓存规则不能与其他缓存规则重叠。 换句话说,如有适用于某个注册表路径的工件缓存规则,则不能添加与其重叠的另一个缓存规则。

上游支持

构件缓存目前支持以下上游注册表。 请查看下表,了解有关支持哪些拉取类型及如何使用它们的详细信息。

警告

要从 Docker Hub 获取内容,您必须使用 Azure CLIAzure 门户 生成凭据集。

上游注册表 支持 可用性
Docker 中心 仅支持经过身份验证的拉取。 Azure CLI、Azure 门户
Microsoft 工件注册表 仅支持未经过身份验证的拉取。 Azure CLI、Azure 门户
AWS 弹性容器注册表 (ECR) 公共图库 仅支持未经过身份验证的拉取。 Azure CLI、Azure 门户
GitHub 容器注册表 支持经过身份验证和未经身份验证的拉取。 Azure CLI、Azure 门户
Quay 支持经过身份验证和未经身份验证的拉取。 Azure CLI、Azure 门户
registry.k8s.io 支持经过身份验证和未经身份验证的拉取。 Azure 命令行接口 (CLI)

后续步骤