Ativar a redundância entre zonas no Azure Container Registry para resiliência e elevada disponibilidade

Além da georreplicação, que replica dados de registo em uma ou mais regiões do Azure para fornecer disponibilidade e reduzir a latência para operações regionais, Azure Container Registry suporta redundância de zona opcional. A redundância entre zonas proporciona resiliência e elevada disponibilidade a um recurso de registo ou replicação (réplica) numa região específica.

Este artigo mostra como configurar um registo ou réplica de contentor com redundância entre zonas com a CLI do Azure, o portal do Azure ou o modelo de Resource Manager do Azure.

A redundância entre zonas é uma funcionalidade do escalão de serviço de registo de contentor Premium. Para obter informações sobre os escalões e limites do serviço de registo, veja Azure Container Registry escalões de serviço.

Suporte Regional

  • Os Zonas de Disponibilidade do ACR são suportados nas seguintes regiões:

    América Europa África Ásia-Pacífico
    Sul do Brasil
    Canadá Central
    E.U.A. Central
    E.U.A. Leste
    E.U.A. Leste 2
    E.U.A. Leste 2 - EUAP
    E.U.A. Centro-Sul
    US Government Virginia
    E.U.A. Oeste 2
    EUA Oeste 3
    França Central
    Alemanha Centro-Oeste
    Europa do Norte
    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
    Ásia Leste
    Leste do Japão
    Coreia do Sul Central
    Catar Central
    Sudeste Asiático
    Norte dos E.A.U.
  • Atualmente, as conversões de regiões em zonas de disponibilidade não são suportadas.

  • Para ativar o suporte da zona de disponibilidade numa região, crie o registo na região pretendida com o suporte da zona de disponibilidade ativado ou adicione uma região replicada com o suporte da zona de disponibilidade ativado.

  • Por predefinição, um registo com um selo ativado para AZ cria uma replicação de região raiz com um carimbo ativado para AZ. O carimbo do AZ não pode ser desativado depois de estar ativado.

  • A replicação da região raiz representa o registo da região de origem. Ajuda a ver e gerir as propriedades da zona de disponibilidade e não pode ser eliminada.

  • A zona de disponibilidade é por região, uma vez criadas as replicaçãos, os respetivos estados não podem ser alterados, exceto ao eliminar e recriar as replicaçãos.

  • A redundância entre zonas não pode ser desativada numa região.

  • O ACR Tasks ainda não suporta zonas de disponibilidade.

Acerca da redundância entre zonas

Utilize as zonas de disponibilidade do Azure para criar um registo de contentor do Azure resiliente e de elevada disponibilidade numa região do Azure. Por exemplo, as organizações podem configurar um registo de contentor do Azure com redundância entre zonas com outros recursos suportados do Azure para cumprir a residência dos dados ou outros requisitos de conformidade, ao mesmo tempo que fornecem elevada disponibilidade numa região.

Azure Container Registry também suporta a georreplicação, que replica o serviço em várias regiões, permitindo a redundância e a localidade para calcular recursos noutras localizações. A combinação de zonas de disponibilidade para redundância numa região e georreplicação em várias regiões melhora a fiabilidade e o desempenho de um registo.

As zonas de disponibilidade são localizações físicas exclusivas numa região do Azure. Para garantir a resiliência, há um mínimo de três zonas separadas em todas as regiões ativadas. Cada zona tem um ou mais datacenters equipados com energia independente, refrigeração e rede. Quando configurado para redundância entre zonas, um registo (ou uma réplica de registo numa região diferente) é replicado em todas as zonas de disponibilidade na região, mantendo-o disponível se existirem falhas do datacenter.

Criar um registo com redundância entre zonas - CLI

Para utilizar a CLI do Azure para ativar a redundância entre zonas, precisa da versão 2.17.0 ou posterior da CLI do Azure ou do Azure Cloud Shell. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Criar um grupo de recursos

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

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

Criar um registo com zona ativada

Execute o comando az acr create para criar um registo com redundância entre zonas no escalão de serviço Premium. Escolha uma região que suporte zonas de disponibilidade para Azure Container Registry. No exemplo seguinte, a redundância entre zonas está ativada na região eastus . Consulte a ajuda do az acr create comando para obter mais opções de registo.

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

Na saída do comando, anote a zoneRedundancy propriedade do registo. Quando ativado, o registo é com redundância entre zonas:

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

Criar replicação com redundância entre zonas

Execute o comando az acr replication create para criar uma réplica de registo com redundância entre zonas numa região que suporte zonas de disponibilidade para Azure Container Registry, 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, anote a zoneRedundancy propriedade da réplica. Quando ativada, a réplica é com redundância entre zonas:

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

Criar um registo com redundância entre zonas - portal

  1. Inicie sessão no portal do Azure.

  2. Selecione Criar um recurso>Containers>Container Registry.

  3. No separador Informações Básicas , selecione ou crie um grupo de recursos e introduza um nome de registo exclusivo.

  4. Em Localização, selecione uma região que suporte a redundância entre zonas para Azure Container Registry, como E.U.A. Leste.

  5. No SKU, selecione Premium.

  6. Em Zonas de disponibilidade, selecione Ativado.

  7. Opcionalmente, configure mais definições de registo e, em seguida, selecione Rever + criar.

  8. Selecione Criar para implementar a instância de registo.

    Ativar a redundância entre zonas no portal do Azure

Para criar uma replicação com redundância entre zonas:

  1. Navegue para o registo de contentor do escalão Premium e selecione Replicaçãos.

  2. No mapa apresentado, selecione um hexágono verde numa região que suporte redundância entre zonas para Azure Container Registry, como E.U.A. Oeste 2. Em alternativa, selecione + Adicionar.

  3. Na janela Criar replicação , confirme a Localização. Em Zonas de disponibilidade, selecione Ativado e, em seguida, selecione Criar.

    Ativar a replicação com redundância entre zonas no portal do Azure

Criar um registo com redundância entre zonas - modelo

Criar um grupo de recursos

Se necessário, execute o comando az group create para criar um grupo de recursos para o registo numa região que suporte zonas de disponibilidade para Azure Container Registry, como eastus. Esta região é utilizada pelo modelo para definir a localização do registo.

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

Implementar o modelo

Pode utilizar o seguinte modelo de Resource Manager para criar um registo georreplicado com redundância entre zonas. Por predefinição, o modelo ativa a redundância entre zonas no registo e numa réplica regional.

Copie o seguinte conteúdo para um novo ficheiro e guarde-o com um nome de ficheiro, 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 seguinte comando az deployment group create para criar o registo com o ficheiro de modelo anterior. Quando indicado, indique:

  • um nome de registo exclusivo ou implementar o modelo sem parâmetros e irá criar um nome exclusivo para si
  • uma localização para a réplica que suporta zonas de disponibilidade, como westus2
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, anote a zoneRedundancy propriedade do registo e da réplica. Quando ativado, cada recurso é com redundância entre zonas:

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

Passos seguintes