你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是连接注册表?

本文介绍 Azure 容器注册表的连接注册表功能。 已连接注册表是本地或远程副本,它将容器映像与基于云的 Azure 容器注册表同步。 使用已连接注册表,帮助加快对本地或远程注册表项目的访问。

计费和支持

连接注册表是高级容器注册表服务层的预览功能,它存在限制。 若要了解注册表服务层和限制,请参阅 Azure 容器注册表服务层

重要

请注意,从 2025 年 1 月 1 日起,已连接注册表部署模型支持和计费将进行重要变更。 有关该转换的任何查询或帮助,请联系客户支持团队。

计费

  • 在正式发布 (GA) 之前,已连接注册表不会产生任何费用。
  • GA 后,每月将对每个部署的已连接注册表收取 10 美元的费用。
  • 此价格代表了 Microsoft 提供高质量服务和产品支持的承诺。
  • 该价格适用于与父注册表关联的 Azure 订阅。

支持

  • Microsoft 将于 2025 年 1 月 1 日结束对 IoT Edge 设备上已连接注册表部署的支持。
  • 2025 年 1 月 1 日之后,已连接注册表将仅支持已启用 Arc 的 Kubernetes 群集作为部署模型。
  • Microsoft 建议用户开始计划转换到已启用 Arc 的 Kubernetes 群集作为部署模型。

可用区域

已连接注册表在以下大洲和区域中可用:

| Continent     | Available Regions |
|---------------|-------------------|
| Australia     | Australia East    |
| Asia          | East Asia         |
|               | Japan East        |
|               | Japan West        |
|               | Southeast Asia    |
| Europe        | North Europe      |
|               | Norway East       |
|               | West Europe       |
| North America | Canada Central    |
|               | Central US        |
|               | East US           |
|               | South Central US  |
|               | West Central US   |
|               | West US 3         |
| South America | Brazil South      |

方案

基于云的 Azure 容器注册表提供的功能包括异地复制、集成安全性、Azure 托管存储以及与 Azure 开发和部署管道的集成。 与此同时,客户在云方面的投资正在延伸到本地及现场解决方案。

若要在本地或远程环境运行时实现所需的性能和可靠性,容器工作负载需要就近可用的容器映像和相关项目。 连接注册表提供一个高性能的本地注册表解决方案,该解决方案定期与基于云的 Azure 容器注册表同步内容。

连接注册表适用的方案包括:

  • 连接工厂
  • 销售点零售地点
  • 装运、石油开采、矿业和其他偶尔连接环境

连接注册表的工作原理

已连接注册表部署在本地的服务器或设备上,或支持本地容器工作负载的环境(例如 Azure IoT Edge 和已启用 Azure Arc 的 Kubernetes)中。 已连接注册表将容器映像和其他 OCI 项目与基于云的 Azure 容器注册表同步。

下图显示了使用 IoT Edge 的已连接注册表的典型部署模型。

使用 IoT Edge 的已连接注册表概述示意图。

下图显示了使用已启用 Azure Arc 的 Kubernetes 的已连接注册表的典型部署模型。

使用已启用 Arc 的 Kubernetes 的已连接注册表概述示意图。

部署

每个已连接注册表都是你在基于云的 Azure 容器注册表中管理的资源。 已连接注册表层次结构中的顶部父级是 Azure 云中的 Azure 容器注册表。 可在 Azure IoT Edge 或已启用 Arc 的 Kubernetes 群集上部署已连接注册表。

若要安装已连接注册表,请在本地服务器或设备上或在支持本地容器工作负载(例如 Azure IoT Edge)的环境中使用 Azure 工具。

将已连接注册表 Arc 扩展部署到已启用 Arc 的 Kubernetes 群集。 使用只读访问和连续同步窗口的默认配置来保护与 TLS 的连接。 此设置允许已连接注册表将映像从 Azure 容器注册表 (ACR) 同步到本地已连接注册表,从而允许从已连接注册表中拉取映像。

连接注册表的激活状态指示是否已在本地部署。

  • 活动 - 当前已在本地部署连接注册表。 在停用已连接注册表之前无法再次进行部署。
  • 非活动 - 当前未在本地部署连接注册表。 此时可进行部署。

内容同步

连接注册表会定期访问云注册表,以同步容器映像和 OCI 项目。

还可将其配置为同步云注册表中的存储库子集,或仅在特定时间间隔内进行同步以降低云与本地之间的流量。

模式

连接注册表可以采用这两种模式之一工作:ReadWrite 或 ReadOnly

ReadOnly 模式 - 默认模式,在已连接注册表使用 ReadOnly 模式时,客户端只能拉取(读取)项目。 此配置用于客户端需要拉取容器映像进行操作的场景。 此默认模式符合我们的默认安全方法,并从 CLI 版本 2.60.0 开始有效。

ReadWrite 模式 - 此模式允许客户端向已连接注册表拉取并推送项目(读取和写入)。 推送到连接注册表的项目将与云注册表同步。 在本地开发环境准备就绪时,ReadWrite 模式非常有用。 映像将会推送到本地连接注册表,并从此处同步到云。

注册表层次结构

每个连接注册表都必须连接到父项。 顶层父项是云注册表。 对于嵌套 IoT Edge等分层方案,可以嵌套任一模式下的连接注册表。 连接到云注册表的父项可在任一模式下运行。

子注册表必须与其父项功能兼容。 因此,ReadOnly 和 ReadWrite 模式的已连接注册表都可以是 ReadWrite 模式下运行的已连接注册表的子项,但是 ReadOnly 模式的注册表只能是 ReadOnly 模式下运行的已连接注册表的子项。

客户端访问

本地客户端使用 Docker CLI 等标准工具向已连接注册表推送或从中拉取内容。 若要管理客户端访问,请创建 Azure 容器注册表令牌,以便访问每个连接注册表。 可以将客户端令牌的作用域限定为对注册表中的一个或多个存储库进行拉取或推送访问。

每个连接注册表还需要定期与其父注册表通信。 为此,云注册表会为该注册表颁发同步令牌。 此令牌用于向其父注册表进行身份验证,以便进行同步和管理。

有关详细信息,请参阅管理对连接注册表的访问

限制

  • 每个容器注册表的令牌和作用域映射的数目限制为 20,000 个。 这间接限制了云注册表的已连接注册表数,因为每个已连接注册表需要一个同步客户端令牌。
  • 作用域映射中的存储库权限数量限制为 500 个。
  • 连接注册表对应的客户端数目前限制为 20 个。
  • 已连接注册表目前不支持通过存储库/清单/标记元数据进行映像锁定
  • 不支持对使用 ReadOnly 模式的已连接注册表进行存储库删除
  • 目前不支持连接注册表的资源日志
  • 连接注册表与该注册表的主区域数据终结点耦合。 不支持异地复制的自动迁移。
  • 删除已连接注册表时,需要手动删除本地容器,并删除云中的各个作用域映射或令牌。
  • 连接注册表同步限制如下:
    • 对于连续同步:
      • minMessageTtl 为一天
      • maxMessageTtl 为 90 天
    • 对于偶尔的连接方案,要指定的同步时间段为:
      • minSyncWindow 为 1 小时
      • maxSyncWindow 为七天

结束语

本概述介绍了连接注册表及一些基本概念。 请继续阅读以下文章之一,了解可以使用连接注册表的具体方案。