本文介绍如何设置区域冗余容器注册表。
Azure 容器注册表高级层中的区域冗余为单区域故障提供保护。 可用区冗余允许在区域内的多个可用性区中分布注册表数据和操作。
有关可用性区域支持要求和功能以及多区域部署选项的详细信息,请参阅 Azure 容器注册表中的可靠性。
先决条件
创建区域冗余注册表
若要在高级服务层中创建区域冗余注册表,请使用 Azure 门户、Azure CLI 或 Bicep 文件。
登录 Azure 门户。
选择“ 创建资源>容器>容器注册表”。
在“基本信息”选项卡中选择或创建一个资源组,然后输入唯一注册表名称。
在 “位置”中,选择 支持可用性区域的区域,例如 中国北部 3。
在“SKU”中选择“高级”。
在“可用性区域”""中,选择“已启用”。
(可选)配置更多注册表设置,然后选择“查看 + 创建“。
选择“创建”以部署注册表实例。
请确保具有 Azure CLI 2.17.0 或更高版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
如果您没有一个位于支持可用性区域的地区中的资源组,请运行 az group create 来创建一个资源组(请将<resource-group-name>
和<location>
替换为您的值):
az group create --name <resource-group-name> --location <location>
选择 支持可用性区域的区域,例如 chinanorth3。
通过运行 az acr create 命令 (将<resource-group-name>
、<container-registry-name>
和<region-name>
替换为您的值):
az acr create \
--resource-group <resource-group-name> \
--name <container-registry-name> \
--location <region-name> \
--zone-redundancy enabled \
--sku Premium
在命令输出中,记下注册表的 zoneRedundancy
属性。 如果 zoneRedundancy
设置为 "Enabled"
,注册表是区域冗余的:
{
[...]
"zoneRedundancy": "Enabled"
}
如果您所在区域没有支持可用性区域的资源组,请运行 az group create 来创建一个资源组(将 <resource-group-name>
和 <location>
替换为您的具体值):
az group create --name <resource-group-name> --location <location>
若要创建区域冗余注册表,请将以下 Bicep 文件复制到新文件中,并使用例如 "registryZone.bicep
" 这样的文件名保存该文件。
默认情况下,Bicep 文件在注册表中启用区域冗余。
@description('Globally unique name of your Azure Container Registry')
@minLength(5)
@maxLength(50)
param containerRegistryName string = 'acr${uniqueString(resourceGroup().id)}'
@description('Location for registry home replica.')
param location string = resourceGroup().location
@description('Enable admin user for registry. This is not recommended for production use.')
param adminUserEnabled bool = false
@description('Enable zone redundancy of registry\'s home replica. Requires the registry\'s region supports availability zones.')
@allowed([
'Enabled'
'Disabled'
])
param containerRegistryZoneRedundancy string = 'Enabled'
// Tier of your Azure Container Registry. Geo-replication and zone redundancy require Premium SKU.
var acrSku = 'Premium'
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-04-01' = {
name: containerRegistryName
location: location
sku: {
name: acrSku
}
properties: {
adminUserEnabled: adminUserEnabled
zoneRedundancy: containerRegistryZoneRedundancy
}
}
output containerRegistryLoginServer string = containerRegistry.properties.loginServer
运行以下 az deployment group create 命令,通过使用前面的模板文件来创建注册表(请将<resource-group-name>
和<registry-name>
替换为您的具体值)。
注释
如果部署模板而不使用参数,它将为你创建唯一的名称。
az deployment group create \
--resource-group <resource-group-name> \
--template-file registryZone.json \
--parameters containerRegistryName=<registry-name>