Azure Container Registry在多个 SKU 中可用。 这些 SKU(也称为定价计划或层)支持可预测的定价,并与Azure中专用容器注册表的不同容量和使用情况模式保持一致。
创建注册表时,选择一个 定价计划 ,用于确定注册表的功能和限制。 选择符合预期使用模式的计划,例如映像数、存储需求和性能要求。
Azure Container Registry提供三个 Pricing Plan 选项:“基本”、“标准”和“高级”。 每个 SKU 提供一组不同的功能和限制,以适应各种方案,从开发和测试到生产工作负荷。
| SKU | 说明 |
|---|---|
| 基本 | 面向了解Azure Container Registry的开发人员的成本优化入口点。 基本注册表与标准注册表和高级注册表具有相同的功能,例如 Microsoft Entra 身份验证集成、镜像删除和 网络钩子。 但是,包含的存储和映像吞吐量最适合较低的使用方案,某些功能不可用。 |
| 标准 | 标准注册表的功能与基本注册表相同。不同之处在于,前者附带更多的存储和映像吞吐量。 标准注册表满足许多生产方案的需求。 |
| 高级 | 高级注册表附带的存储和并发操作数最多,支持大容量方案。 除了更高的映像吞吐量之外,Premium 还添加了一些功能,例如异 地复制 以实现高可用性,包括跨多个区域管理单个注册表、 专用链接和专用终结点 来限制对注册表的访问,以及用于大规模并发部署的更高 API 并发性和带宽吞吐量。 |
每个 SKU 包含一定量的免费存储,额外存储按每 GB 收费。 每个 SKU 也有不同的最大存储限制。
基本、标准和高级 SKU 都提供相同的编程功能和数据平面 API。 它们也都受益于完全由 Azure 管理的 镜像存储。 但是,高级 SKU 可实现更广泛的功能,并具有更高的限制。
SKU 功能和限制
下表详细介绍了基本、标准和高级 SKU 的功能和注册表限制。
| 资源 | 基本 | 标准 | 高级 |
|---|---|---|---|
| 包括的存储容量1 (GiB) | 10 | 100 | 500 |
| 存储限制 (TiB) | 40 | 40 | 100 |
| 最大映像层大小 (GiB) | 200 | 200 | 200 |
| 最大清单大小 (MiB) | 4 | 4 | 4 |
| Webhook | 2 | 10 | 500 |
| 具有专用终结点的专用链接 | 空值 | 空值 | 支持 |
| • 专用终结点 | 空值 | 空值 | 200 |
| 公共 IP 网络规则 | 空值 | 空值 | 200 |
| • 虚拟网络规则 | 空值 | 空值 | 100 |
| 基于 Microsoft Entra 角色分配的存储库范围权限 | 支持 | 支持 | 支持 |
| 具有非 Microsoft Entra 令牌和范围映射的存储库范围权限 | 支持 | 支持 | 支持 |
| • 非 Microsoft Entra 令牌 | 100 | 500 | 50,000 |
| • 非Microsoft Entra令牌范围映射 | 100 | 500 | 50,000 |
| • 非 Microsoft Entra 令牌作用域映射的操作 | 500 | 500 | 500 |
| • 每个非Microsoft Entra令牌范围的存储库映射2 | 500 | 500 | 500 |
| 匿名拉取访问 | 空值 | 支持 | 支持 |
| 异地复制 | 空值 | 空值 | 支持 |
| 专用数据终结点 | 空值 | 空值 | 支持 |
| 可用性区域 | 支持 | 支持 | 支持 |
| 内容信任 | 空值 | 空值 | 支持 |
| 客户管理的密钥 | 空值 | 空值 | 支持 |
| 工件流式处理 | 空值 | 空值 | 支持 |
| 工件缓存规则 | 空值 | 支持 | 支持 |
| IP 访问规则配置 | 空值 | 空值 | 支持 |
| 未标记清单的保留策略 | 空值 | 空值 | 支持 |
| 制品传输 | 空值 | 空值 | 支持 |
| 导出策略 | 空值 | 空值 | 支持 |
1 存储包含在每个层级的每日费率中。 可以使用额外的存储空间,最多不超过注册存储限额,每 GiB 的额外存储将按日收费。 有关费率信息,请参阅 Azure Container Registry 定价。 如果需要超出注册表存储限制的存储,请联系Azure支持部门。
2 个独立操作content/deletecontent/readcontent/writemetadata/readmetadata/write,对应于每个非 Microsoft Entra 令牌范围映射的存储库限制。
注意
可以通过联系 Azure Support 来增加此表中列出的一些限制。 例如,您可以请求提高专用终结点限制、镜像推送和拉取的性能,以及常规存储限制,因为节流或带宽限制可能会影响这些性能。
有关每个Azure Container Registry SKU 的定价信息,请参阅 Container 注册表定价。 有关数据传输定价的详细信息,请参阅 带宽定价。
注册表映像拉取和推送性能限制
在高负载操作期间,API 并发、带宽吞吐量和节流主要影响镜像拉取和推送的性能。 注册表 SKU、网络配置和客户端配置决定了这些因素。
API 并发和带宽吞吐量限制
SKU 决定了 API 并发性和带宽吞吐量。 较高的 SKU 支持更多并发操作,并为数据平面操作(如列出、删除、推送和拉取镜像)提供更大的带宽。
以下因素会影响映像拉取和推送期间的 API 并发和带宽吞吐量:
- 映像层的数量和大小
- 在注册表中跨映像重用层
- 每个操作所需的其他 API 调用
- 并发部署的规模,例如 Kubernetes 部署同时跨多个节点拉取映像
以下客户端环境因素会影响性能:
- 用于并发操作的 Docker 守护程序或 Podman 配置
- 容器运行时配置,例如
containerd或 CRI-O 并发设置 - 群集配置或群集数据平面设置
以下网络因素会影响性能:
- 从客户端到注册表的网络跃点的网络带宽和延迟
- 客户端网络配置,例如防火墙规则和代理设置
- 地理距离到注册表或最近的副本(如果异地复制)
有关在映像推送和拉取期间发生的 API 操作的详细信息,请参阅 Docker HTTP API V2 文档。 有关故障排除的帮助,请参阅 注册表性能疑难解答。
节流和带宽限制
在高请求量期间,您可能会遇到 HTTP 429 Too many requests 错误或带宽吞吐量缓慢的限速。 若要缓解这些问题,请执行以下步骤:
- 使用指数退避实现重试逻辑。
- 降低并发请求的速率。
- 分散大规模部署,以减少在多个节点上同时拉取镜像的情况。
注意
如果遇到永久性 API 限制或带宽吞吐量缓慢的情况,请考虑 将注册表的 SKU 更新 为更高的 SKU。 还可以联系 Azure 支持 请求提高限制。
显示注册表使用情况
使用信息有助于你在注册表接近限制时就 更改 SKU 做出决策,并帮助 管理消耗。
若要获取注册表当前存储消耗量和其他资源的快照,请与注册表 SKU 的限制进行比较,请在 Azure 门户中检查注册表的 Overview 页。 还可以使用 az acr show-usage(Azure CLI)、Get-AzContainerRegistryUsage(Azure PowerShell)或 Registries - 列出使用情况(REST API)。
注意
注册表的存储使用量可能无法反映所有最近的注册表操作。 监视注册表的指标以获取最新数据。
根据注册表的 SKU,使用情况信息包括以下部分或全部信息,以及该 SKU 中的限制:
在异地复制的注册表中,显示主区域的存储使用情况。 乘以副本数量来计算存储总量。
更改注册表中的 SKU
可以在 Azure 门户中更改注册表的 SKU,也可以使用 Azure CLI 或 Azure PowerShell。 只要切换到的 SKU 具有所需的最大存储容量,就可以在 SKU 之间自由移动。
更改注册表的 SKU 时,不会停机或对注册表操作造成影响。 但是,如果从高级版迁移到较低的 SKU,则会禁用特定于高级的功能。 在某些情况下,需要先删除与这些功能相关联的资源,然后才能切换SKU。 例如,必须先删除任何异地复制或连接的注册表,然后才能从高级版切换到标准版或基本版。
若要在 Azure 门户中更改 SKU,请转到容器注册表。 在服务菜单中的 “设置”下,选择“ 属性”。 更改 定价计划的选项,然后选择“ 保存”。
若要使用 Azure CLI更改 SKU,请使用 az acr update 命令。 例如,若要切换到高级版,请使用以下命令:
az acr update --name myContainerRegistry --sku Premium
若要使用 Azure PowerShell更改 SKU,请使用 Update-AzContainerRegistry cmdlet。 例如,若要切换到高级版,请使用以下命令:
Update-AzContainerRegistry -ResourceGroupName myResourceGroup -Name myContainerRegistry -Sku Premium
相关内容
有关即将推出的Azure Container Registry功能的信息,请参阅 GitHub 上的 Roadmap。