Azure 容器注册表中的 IPv6 双堆栈终结点(预览版)

Azure 容器注册表预览版支持 IPv6 双堆栈终结点协议。 当注册表的终结点协议设置为 IPv4AndIPv6时,可以通过 IPv4 和 IPv6 访问注册表的终结点,因此,仅 IPv4、双堆栈和支持 IPv6 的网络上的客户端可以针对同一注册表进行身份验证、推送和拉取。

Important

IPv6 双堆栈终结点目前处于预览状态。 此预览版仅为注册表的公共终结点(登录服务器、专用数据终结点和区域终结点)启用 IPv6。 不支持通过 专用终结点 使用 IPv6;专用终结点流量继续使用 IPv4。 启用了 IPv6 双堆栈的注册表不支持 ACR 任务。 当终结点协议设置为 IPv4AndIPv6时,任务不起作用,包括快速生成(使用 az acr build)和快速任务运行(使用 az acr run)。

为什么使用 IPv6 双栈端点

团队将 IPv6 用于其容器注册表流量,原因有以下几点:

  • 纯 IPv6 和双栈网络。 首选或需要 IPv6 的网络(包括较新的云网络部署、电信和 IoT 环境以及现代化企业网络)中的客户端需要其容器注册表才能通过 IPv6 访问。
  • 防范 IPv4 地址耗尽。 迁移到 IPv6 的组织减少了对日益稀缺的 IPv4 地址空间的依赖。
  • 法规和组织授权。 某些组织在将服务和客户端转换为 IPv6 的要求下运行。

双堆栈模型意味着你不必选择:注册表继续为 IPv4 客户端提供服务,同时为 IPv6 客户端提供服务。

终结点协议值

终结点协议是一个注册表级设置,其中包含两个值:

终结点协议 Behavior
IPv4(默认值) 注册表终结点只能通过 IPv4 访问。
IPv4AndIPv6 (预览版) 可以通过 IPv4 和 IPv6(双堆栈)访问注册表终结点。

没有仅限 IPv6 的模式。 双堆栈保留与现有 IPv4 客户端的兼容性。

先决条件

  • PremiumSKU 中的注册表。
  • 已在该注册表上启用专用数据端点。 将终结点协议设置为 IPv4AndIPv6 需要将 dataEndpointEnabled 设为 true。 此要求由服务强制实施。
  • 适用于 的 Azure CLI 版本需为 az acr update --endpoint-protocol 或更高版本。 运行 az version 以检查当前版本,运行 az upgrade 以进行更新。

在现有注册表上启用双堆栈终结点

启用专用数据终结点并在单个更新中设置终结点协议:

az acr update --name myregistry --data-endpoint-enabled true --endpoint-protocol IPv4AndIPv6

如果已在注册表上启用专用数据终结点,则可以自行设置终结点协议:

az acr update --name myregistry --endpoint-protocol IPv4AndIPv6

验证配置:

az acr show --name myregistry --query "{endpointProtocol:endpointProtocol, dataEndpointEnabled:dataEndpointEnabled}"

示例输出:

{
  "dataEndpointEnabled": true,
  "endpointProtocol": "IPv4AndIPv6"
}

恢复为仅支持 IPv4 的终结点

若要将注册表还原到仅限 IPv4 的终结点,请执行以下操作:

az acr update --name myregistry --endpoint-protocol IPv4

将终端节点协议改回原来的设置并不会禁用专用数据终端节点。 若要禁用它们,请在将终结点协议还原为az acr update --name myregistry --data-endpoint-enabled false后运行IPv4

防火墙和网络注意事项

  • 基于 FQDN 的防火墙规则继续保持不变。 允许注册表登录服务器(myregistry.azurecr.cn)、专用数据终结点(myregistry.<region>.data.azurecr.cn)和区域终结点(myregistry.<region>.geo.azurecr.cn,如果已启用)的规则无论使用何种协议均适用。
  • 基于 IP 的允许列表需要考虑 IPv6。 如果客户端防火墙允许按 IP 地址范围而不是 FQDN 进行注册表访问,则到注册表的 IPv6 客户端流量需要相应的 IPv6 规则。
  • 专用数据终结点是双堆栈模型的一部分。 由于双栈需要专用的数据端点,因此层 Blob 下载由 myregistry.<region>.data.azurecr.cn 而非 *.blob.core.chinacloudapi.cn 提供。 如果您是在采用双栈时首次启用专用数据终结点,请先查看 Dedicated data endpoints 中关于对客户端防火墙影响的说明,然后再启用。

有关详细信息,请参阅配置规则以访问防火墙后的 Azure 容器注册表

与其他注册表功能的交互

功能 IPv4AndIPv6
专用数据终结点 必填。 除非IPv4AndIPv6dataEndpointEnabled,否则该服务会拒绝true
SKU 高级 SKU 是必需的,因为专用数据终结点是高级功能。
Geo-replication 终结点协议是注册表级设置。 在异地复制的注册表中,每个副本区域中都存在专用数据终结点。
专用终结点 此设置 endpointProtocol 适用于注册表的公共终结点。 通过专用终结点提供的 IPv6 不在此次预览范围内。
ACR 任务 不支持。 当终结点协议设置为 IPv4AndIPv6时,任务不起作用,包括快速生成(使用 az acr build)和快速任务运行(使用 az acr run)。

后续步骤