Zoneredundantie inschakelen in Azure Container Registry voor tolerantie en hoge beschikbaarheid

Naast geo-replicatie, waarmee registergegevens worden gerepliceerd in een of meer Azure-regio's om beschikbaarheid te bieden en latentie te verminderen voor regionale bewerkingen, ondersteunt Azure Container Registry optionele zoneredundantie. Zoneredundantie biedt tolerantie en hoge beschikbaarheid voor een register- of replicatieresource (replica) in een specifieke regio.

In dit artikel wordt beschreven hoe u een zone-redundant containerregister of replica instelt met behulp van de Azure CLI- Azure Portal- of Azure Resource Manager-sjabloon.

Zoneredundantie is een functie van de Servicelaag van het Premium-containerregister. Zie Azure Container Registry servicelagen voor meer informatie over registerservicelagen en limieten.

Regionale ondersteuning

  • ACR-Beschikbaarheidszones worden ondersteund in de volgende regio's:

    Noord- en Zuid-Amerika Europa Afrika Azië en Stille Oceaan
    Brazilië - zuid
    Canada - midden
    VS - centraal
    VS - oost
    VS - oost 2
    VS - oost 2 EUAP
    VS - zuid-centraal
    Amerikaanse overheid Virginia
    VS - west 2
    US - west 3
    Frankrijk - centraal
    Duitsland - west-centraal
    Europa - noord
    Noorwegen - oost
    Zweden - centraal
    Zwitserland - noord
    Verenigd Koninkrijk Zuid
    Europa -west
    Zuid-Afrika - noord
    Australië - oost
    India - centraal
    China - noord 3
    Azië - oost
    Japan - oost
    Korea - centraal
    Qatar - centraal
    Azië - zuidoost
    VAE - noord
  • Regioconversies naar beschikbaarheidszones worden momenteel niet ondersteund.

  • Als u ondersteuning voor beschikbaarheidszones in een regio wilt inschakelen, maakt u het register in de gewenste regio met ondersteuning voor beschikbaarheidszones ingeschakeld of voegt u een gerepliceerde regio toe waarvoor ondersteuning voor beschikbaarheidszones is ingeschakeld.

  • Een register met een AZ-stempel maakt standaard een thuisregioreplicatie met een AZ-stempel. De AZ-zegel kan niet worden uitgeschakeld nadat deze is ingeschakeld.

  • De replicatie van de thuisregio vertegenwoordigt het register van de thuisregio. Het helpt bij het weergeven en beheren van de eigenschappen van de beschikbaarheidszone en kan niet worden verwijderd.

  • De beschikbaarheidszone is per regio. Zodra de replicaties zijn gemaakt, kunnen de statussen ervan niet worden gewijzigd, behalve door de replicaties te verwijderen en opnieuw te maken.

  • Zoneredundantie kan niet worden uitgeschakeld in een regio.

  • ACR Tasks biedt nog geen ondersteuning voor beschikbaarheidszones.

Over zoneredundantie

Gebruik Azure-beschikbaarheidszones om een tolerant Azure-containerregister met hoge beschikbaarheid te maken binnen een Azure-regio. Organisaties kunnen bijvoorbeeld een zone-redundant Azure-containerregister instellen met andere ondersteunde Azure-resources om te voldoen aan gegevenslocatie of andere nalevingsvereisten, terwijl hoge beschikbaarheid binnen een regio wordt geboden.

Azure Container Registry ondersteunt ook geo-replicatie, waarmee de service in meerdere regio's wordt gerepliceerd, waardoor redundantie en lokaliteit mogelijk is voor het berekenen van resources op andere locaties. De combinatie van beschikbaarheidszones voor redundantie binnen een regio en geo-replicatie tussen meerdere regio's verbetert zowel de betrouwbaarheid als de prestaties van een register.

Beschikbaarheidszones zijn unieke, fysieke locaties binnen een Azure-regio. Tolerantie wordt gegarandeerd door aanwezigheid van minimaal drie afzonderlijke zones in alle actieve regio's. Elke zone heeft een of meer datacenters die zijn uitgerust met onafhankelijke voeding, koeling en netwerken. Wanneer deze is geconfigureerd voor zoneredundantie, wordt een register (of een registerreplica in een andere regio) gerepliceerd in alle beschikbaarheidszones in de regio, zodat het beschikbaar blijft als er datacenterfouten optreden.

Een zoneredundant register maken - CLI

Als u de Azure CLI wilt gebruiken om zoneredundantie in te schakelen, hebt u Azure CLI versie 2.17.0 of hoger of Azure Cloud Shell nodig. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.

Een resourcegroep maken

Voer indien nodig de opdracht az group create uit om een resourcegroep voor het register te maken.

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

Een register met zone maken

Voer de opdracht az acr create uit om een zone-redundant register te maken in de Premium-servicelaag. Kies een regio die ondersteuning biedt voor beschikbaarheidszones voor Azure Container Registry. In het volgende voorbeeld is zoneredundantie ingeschakeld in de regio eastus . Zie de help van de az acr create opdracht voor meer registeropties.

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

Noteer in de uitvoer van de opdracht de zoneRedundancy eigenschap voor het register. Wanneer dit is ingeschakeld, is het register zoneredundant:

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

Zone-redundante replicatie maken

Voer de opdracht az acr replication create uit om een zoneredundante registerreplica te maken in een regio die ondersteuning biedt voor beschikbaarheidszones voor Azure Container Registry, zoals westus2.

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

Noteer in de uitvoer van de opdracht de zoneRedundancy eigenschap voor de replica. Wanneer deze is ingeschakeld, is de replica zone-redundant:

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

Een zoneredundant register maken - portal

  1. Meld u aan bij de Azure-portal.

  2. Selecteer Een resource maken>Containers>Container Registry.

  3. Selecteer of maak een resourcegroep op het tabblad Basisinformatie en voer een unieke registernaam in.

  4. Selecteer bij Locatie een regio die zoneredundantie voor Azure Container Registry ondersteunt, zoals VS - oost.

  5. Selecteer Premium in SKU.

  6. Selecteer in Beschikbaarheidszonesde optie Ingeschakeld.

  7. Configureer desgewenst meer registerinstellingen en selecteer vervolgens Controleren en maken.

  8. Selecteer Maken om het registerexemplaar te implementeren.

    Zoneredundantie inschakelen in Azure Portal

Een zone-redundante replicatie maken:

  1. Navigeer naar het containerregister van de Premium-laag en selecteer Replicaties.

  2. Selecteer op de kaart die wordt weergegeven een groene zeshoek in een regio die zoneredundantie ondersteunt voor Azure Container Registry, zoals VS - west 2. Of selecteer + Toevoegen.

  3. Bevestig in het venster Replicatie maken de locatie. Selecteer in Beschikbaarheidszonesde optie Ingeschakeld en selecteer vervolgens Maken.

    Zone-redundante replicatie inschakelen in Azure Portal

Een zoneredundant register maken - sjabloon

Een resourcegroep maken

Voer indien nodig de opdracht az group create uit om een resourcegroep voor het register te maken in een regio die ondersteuning biedt voor beschikbaarheidszones voor Azure Container Registry, zoals eastus. Deze regio wordt door de sjabloon gebruikt om de registerlocatie in te stellen.

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

De sjabloon implementeren

U kunt de volgende Resource Manager-sjabloon gebruiken om een zone-redundant, geo-gerepliceerd register te maken. De sjabloon schakelt standaard zoneredundantie in het register en een regionale replica in.

Kopieer de volgende inhoud naar een nieuw bestand en sla deze op met behulp van een bestandsnaam zoals 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"
      }
    }
  }

Voer de volgende opdracht az deployment group create uit om het register te maken met behulp van het voorgaande sjabloonbestand. Geef, indien aangegeven, het volgende op:

  • een unieke registernaam, of implementeer de sjabloon zonder parameters en er wordt een unieke naam voor u gemaakt
  • een locatie voor de replica die ondersteuning biedt voor beschikbaarheidszones, zoals westus2
az deployment group create \
  --resource-group <resource-group-name> \
  --template-file registryZone.json \
  --parameters acrName=<registry-name> acrReplicaLocation=<replica-location>

Noteer in de uitvoer van de opdracht de zoneRedundancy eigenschap voor het register en de replica. Wanneer deze optie is ingeschakeld, is elke resource zone-redundant:

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

Volgende stappen