В этой статье описывается, как настроить реестр контейнеров с зональной избыточностью.
Избыточность зоны включена по умолчанию для всех реестров контейнеров Azure в регионах, поддерживающих зоны доступности, что делает ресурсы более устойчивыми автоматически и без дополнительных затрат. Это улучшение применяется ко всем номерам SKU, включая базовый и стандартный, и был развернут как для новых, так и для существующих реестров в поддерживаемых регионах.
Это важно
Портал Azure и CLI пока не отражают точное обновление избыточности зоны. Свойство zoneRedundancy в конфигурации реестра может по-прежнему отображаться как false, даже если избыточность зоны активна для всех реестров в поддерживаемых регионах. Мы активно обновляем поверхности портала и API, чтобы отразить это поведение по умолчанию более прозрачно. Все ранее включенные функции будут продолжать функционировать должным образом.
Дополнительные сведения о требованиях и функциях поддержки зон доступности, а также о вариантах развертывания в нескольких регионах см. в разделе "Надежность" в Реестре контейнеров Azure.
Prerequisites
Создайте зонально-избыточный реестр
Чтобы создать реестр с избыточностью по зонам в уровне обслуживания "Премиум", используйте портал Azure, Azure CLI или файл Bicep.
Войдите на портал Azure.
Выберите Создать ресурс>Контейнеры>Реестр контейнеров.
На вкладке "Основные сведения" выберите или создайте группу ресурсов и введите уникальное имя реестра.
В расположении выберите регион, поддерживающий зоны доступности, например восточную часть США.
В поле SKU выберите пункт Премиум.
В зонах доступности выберите "Включено".
При необходимости настройте дополнительные параметры реестра и нажмите кнопку "Проверить и создать".
Нажмите кнопку Создать, чтобы активировать реестр.
Убедитесь, что у вас есть Azure CLI версии 2.17.0 или более поздней версии или Azure Cloud Shell. Если вам нужно установить или обновить, см. статью "Установка Azure CLI".
Если у вас нет группы ресурсов в регионе, поддерживающем зоны доступности, выполните команду az group create , чтобы создать группу ресурсов (заменить <resource-group-name> и <location> с вашими значениями):
az group create --name <resource-group-name> --location <location>
Выберите регион, поддерживающий зоны доступности, например eastus.
Создайте реестр с поддержкой зоны на уровне служб Premium, выполнив команду 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> вашими значениями.
Note
При развертывании шаблона без параметров создается уникальное имя для вас.
az deployment group create \
--resource-group <resource-group-name> \
--template-file registryZone.json \
--parameters containerRegistryName=<registry-name>