Habilitar a redundância de zona no Registro de Contêiner do Azure para resiliência e alta disponibilidade

Além da replicação geográfica, que replica os dados do registro em uma ou mais regiões do Azure para fornecer disponibilidade e reduzir a latência para operações regionais, o Registro de Contêiner do Azure dá suporte à redundância de zona opcional. A redundância de zona fornece resiliência e alta disponibilidade a um registro ou a um recurso de replicação (réplica) em uma região específica.

Este artigo mostra como configurar uma réplica ou um registro de contêiner com redundância de zona usando o modelo CLI do Azure, portal do Azure ou o Azure Resource Manager.

A redundância de zona é um recurso da camada de serviço do registro de contêiner Premium. Para obter informações sobre os limites e as camadas de serviço do Registro, confira Camadas de serviço do Registro de Contêiner do Azure.

Suporte regional

  • Há suporte para Zonas de Disponibilidade do ACR nas seguintes regiões:

    Américas Europa África Pacífico Asiático
    Brazil South
    Canadá Central
    Centro dos EUA
    Leste dos EUA
    Leste dos EUA 2
    Leste dos EUA 2 EUAP
    Centro-Sul dos Estados Unidos
    Virgínia, Governo dos EUA
    Oeste dos EUA 2
    Oeste dos EUA 3
    França Central
    Centro-Oeste da Alemanha
    Norte da Itália
    Norte da Europa
    Leste da Noruega
    Suécia Central
    Norte da Suíça
    Sul do Reino Unido
    Europa Ocidental
    Norte da África do Sul
    Leste da Austrália
    Índia Central
    Norte da China 3
    Leste da Ásia
    Leste do Japão
    Coreia Central
    Catar Central
    Sudeste Asiático
    Norte dos EAU
  • Atualmente, não há suporte para conversões de região para zonas de disponibilidade.

  • Para habilitar o suporte para zona de disponibilidade em uma região, crie registro na região desejada, com o suporte à zona de disponibilidade habilitado, ou adicione uma região replicada com o suporte à zona de disponibilidade habilitado.

  • Um registro com um carimbo habilitado para AZ cria uma replicação de região base com um carimbo habilitado para AZ por padrão. O carimbo AZ não pode ser desabilitado depois de habilitado.

  • A replicação da região de residência representa o registro da região de residência. Ela ajuda a exibir e gerenciar as propriedades da zona de disponibilidade e não pode ser excluída.

  • A zona de disponibilidade é dada por região, uma vez que as replicação são criadas, seus estados não podem ser alterados, a não ser excluindo e recriando as replicações.

  • A redundância de zona não pode ser desabilitada em uma região.

  • As Tarefas do ACR ainda não dão suporte a zonas de disponibilidade.

Sobre a redundância de zona

Use as zonas de disponibilidade do Azure para criar um registro de contêiner do Azure resiliente e de alta disponibilidade em uma região do Azure. Por exemplo, as organizações podem configurar um registro de contêiner do Azure com redundância de zona com outros recursos do Azure com suporte para atender à residência de dados ou outros requisitos de conformidade, fornecendo alta disponibilidade em uma região.

O Registro de Contêiner do Azure também dá suporte à replicação geográfica, que replica o serviço em várias regiões, permitindo a redundância e a localidade para computar recursos em outros locais. A combinação de zonas de disponibilidade para redundância em uma região e replicação geográfica em várias regiões aumenta a confiabilidade e o desempenho de um registro.

As zonas de disponibilidade são locais físicos exclusivos em uma região do Azure. Para garantir a resiliência, há um mínimo de três zonas separadas em todas as regiões habilitadas. Cada zona tem um ou mais datacenters equipados com energia, resfriamento e rede independentes. Quando configurado para redundância de zona, um registro (ou uma réplica de registro em uma região diferente) é replicado em todas as zonas de disponibilidade na região, mantendo-a disponível se houver falhas no datacenter.

Criar um registro com redundância de zona – CLI

Para usar a CLI do Azure para habilitar a redundância de zona, é necessário a CLI do Azure versão 2.17.0 ou posterior ou o Azure Cloud Shell. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Criar um grupo de recursos

Se necessário, execute o comando az group create para criar um grupo de recursos para o registro.

az group create --name <resource-group-name> --location <location>

Criar registro habilitado para zona

Execute o comando az acr create para criar um registro com redundância de zona na camada de serviço Premium. Escolha uma região que ofereça suporte a zonas de disponibilidade para o Registro de Contêiner do Azure. No exemplo a seguir, a redundância de zona está habilitada na região Leste dos EUA. Confira o comando de ajuda az acr create para obter mais opções de registro.

az acr create \
  --resource-group <resource-group-name> \
  --name <container-registry-name> \
  --location eastus \
  --zone-redundancy enabled \
  --sku Premium

Na saída do comando, observe a propriedade zoneRedundancy do registro. Quando habilitado, o registro tem redundância de zona:

{
 [...]
"zoneRedundancy": "Enabled",
}

Criar replicação com redundância de zona

Execute o comando az acr replication create para criar uma réplica de registro com redundância de zona em uma região que dá suporte a zonas de disponibilidade para o Registro de Contêiner do Azure, como westus2.

az acr replication create \
  --location westus2 \
  --resource-group <resource-group-name> \
  --registry <container-registry-name> \
  --zone-redundancy enabled

Na saída do comando, observe a propriedade zoneRedundancy da réplica. Quando habilitado, a réplica tem redundância de zona:

{
 [...]
"zoneRedundancy": "Enabled",
}

Criar um registro com redundância de zona – portal

  1. Entre no portal do Azure.

  2. Selecione Criar um recurso>Contêineres>Registro de Contêiner.

  3. Na guia Informações Básicas, selecione ou crie um grupo de recursos e insira um nome de registro único.

  4. Em Local, selecione uma região que ofereça suporte à redundância de zona para o Registro de Contêiner do Azure, como Leste dos EUA.

  5. Em SKU, selecione Premium.

  6. Em Zonas de disponibilidade, selecione Habilitado.

  7. Opcionalmente, defina mais configurações do registro e, em seguida, selecione Revisar + criar.

  8. Escolha Criar para implantar a instância do Registro.

    Habilitar a redundância de zona no portal do Azure

Para criar replicação com redundância de zona:

  1. Navegue até o registro de contêiner do Azure de camada Premium e selecione Replicações.

  2. No mapa que aparece, selecione um hexágono verde em uma região que ofereça suporte à redundância de zona para o Registro de Contêiner do Azure, como Oeste dos EUA 2. Selecione + Adicionar.

  3. Na janela Criar replicação, confirme o Local. Em Zonas de disponibilidade, selecione Habilitadoe, em seguida, selecione Criar.

    Habilitar a replicação com redundância de zona no portal do Azure

Criar um registro com redundância de zona – modelo

Criar um grupo de recursos

Se necessário, execute o comando az group create para criar um grupo de recursos para o registro em uma região que dê suporte a zonas de disponibilidade para o Registro de Contêiner do Azure, como Leste dos EUA. Essa região é usada pelo modelo para definir o local do registro.

az group create --name <resource-group-name> --location eastus

Implantar o modelo

Você pode usar o seguinte modelo do Resource Manager para criar um registro replicado geograficamente com redundância de zona. Por padrão, o modelo habilita a redundância de zona no registro e uma réplica regional.

Copie o conteúdo a seguir em um novo arquivo e salve-o usando um nome de arquivo como registryZone.json.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "acrName": {
        "type": "string",
        "defaultValue": "[concat('acr', uniqueString(resourceGroup().id))]",
        "minLength": 5,
        "maxLength": 50,
        "metadata": {
          "description": "Globally unique name of your Azure Container Registry"
        }
      },
      "location": {
        "type": "string",
        "defaultValue": "[resourceGroup().location]",
        "metadata": {
          "description": "Location for registry home replica."
        }
      },
      "acrSku": {
        "type": "string",
        "defaultValue": "Premium",
        "allowedValues": [
          "Premium"
        ],
        "metadata": {
          "description": "Tier of your Azure Container Registry. Geo-replication and zone redundancy require Premium SKU."
        }
      },
      "acrZoneRedundancy": {
        "type": "string",
        "defaultValue": "Enabled",
        "metadata": {
          "description": "Enable zone redundancy of registry's home replica. Requires registry location to support availability zones."
        }
      },
      "acrReplicaLocation": {
        "type": "string",
        "metadata": {
          "description": "Short name for registry replica location."
        }
      },
      "acrReplicaZoneRedundancy": {
        "type": "string",
        "defaultValue": "Enabled",
        "metadata": {
          "description": "Enable zone redundancy of registry replica. Requires replica location to support availability zones."
        }
      }
    },
    "resources": [
      {
        "comments": "Container registry for storing docker images",
        "type": "Microsoft.ContainerRegistry/registries",
        "apiVersion": "2020-11-01",
        "name": "[parameters('acrName')]",
        "location": "[parameters('location')]",
        "sku": {
          "name": "[parameters('acrSku')]",
          "tier": "[parameters('acrSku')]"
        },
        "tags": {
          "displayName": "Container Registry",
          "container.registry": "[parameters('acrName')]"
        },
        "properties": {
          "adminUserEnabled": "[parameters('acrAdminUserEnabled')]",
          "zoneRedundancy": "[parameters('acrZoneRedundancy')]"
        }
      },
      {
        "type": "Microsoft.ContainerRegistry/registries/replications",
        "apiVersion": "2020-11-01",
        "name": "[concat(parameters('acrName'), '/', parameters('acrReplicaLocation'))]",
        "location": "[parameters('acrReplicaLocation')]",
          "dependsOn": [
          "[resourceId('Microsoft.ContainerRegistry/registries/', parameters('acrName'))]"
        ],
        "properties": {
          "zoneRedundancy": "[parameters('acrReplicaZoneRedundancy')]"
        }
      }
    ],
    "outputs": {
      "acrLoginServer": {
        "value": "[reference(resourceId('Microsoft.ContainerRegistry/registries',parameters('acrName')),'2019-12-01').loginServer]",
        "type": "string"
      }
    }
  }

Execute o comando az deployment group create a seguir para criar o registro usando o arquivo de modelo anterior. Quando indicado, forneça:

  • um nome de registro exclusivo ou implante o modelo sem parâmetros e ele criará um nome exclusivo para você
  • um local para a réplica que dá suporte a zonas de disponibilidade, como Oeste dos EUA 2
az deployment group create \
  --resource-group <resource-group-name> \
  --template-file registryZone.json \
  --parameters acrName=<registry-name> acrReplicaLocation=<replica-location>

Na saída do comando, observe a propriedade zoneRedundancy do registro e a réplica. Quando habilitado, cada recurso tem redundância de zona:

{
 [...]
"zoneRedundancy": "Enabled",
}

Próximas etapas