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 |
|---|---|
| 专用数据终结点 | 必填。 除非IPv4AndIPv6为dataEndpointEnabled,否则该服务会拒绝true。 |
| SKU | 高级 SKU 是必需的,因为专用数据终结点是高级功能。 |
| Geo-replication | 终结点协议是注册表级设置。 在异地复制的注册表中,每个副本区域中都存在专用数据终结点。 |
| 专用终结点 | 此设置 endpointProtocol 适用于注册表的公共终结点。 通过专用终结点提供的 IPv6 不在此次预览范围内。 |
| ACR 任务 | 不支持。 当终结点协议设置为 IPv4AndIPv6时,任务不起作用,包括快速生成(使用 az acr build)和快速任务运行(使用 az acr run)。 |
后续步骤
- 了解 专用数据终结点,这是双堆栈终结点的先决条件。
- 有关所有终结点类型、URL 格式和 CLI 标志,请参阅Azure 容器注册表终结点参考。
- 查看防火墙后面的客户端的 防火墙访问规则 。