Zoneredundantie inschakelen in Azure Container Registry voor tolerantie en hoge beschikbaarheid

Naast geo-replicatie, waarmee registergegevens in een of meer Azure-regio's worden gerepliceerd om beschikbaarheid te bieden en latentie voor regionale bewerkingen te verminderen, 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 zoneredundante containerregister of replica instelt met behulp van de Azure CLI- of Azure Portal- of Azure Resource Manager-sjabloon.

Zoneredundantie is een functie van de servicelaag Premium-containerregister. Zie Azure Container Registry-servicelagen voor 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
    Italië - noord
    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 waarvoor ondersteuning voor beschikbaarheidszones is 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 stempel met AZ-functionaliteit. De AZ-stempel kan niet worden uitgeschakeld zodra deze is ingeschakeld.

  • De replicatie van de thuisregio vertegenwoordigt het register van de basisregio. 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 hun statussen 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 en hoog beschikbaarheid Azure-containerregister 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 ze hoge beschikbaarheid binnen een regio bieden.

Azure Container Registry biedt ook ondersteuning voor geo-replicatie, waarmee de service wordt gerepliceerd in meerdere regio's, waardoor redundantie en lokaliteit kunnen worden gebruikt voor het berekenen van resources op andere locaties. De combinatie van beschikbaarheidszones voor redundantie binnen een regio en geo-replicatie in 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 deze beschikbaar blijft als er datacenterfouten optreden.

Een zone-redundant 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. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Een brongroep 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>

Register met zone-functionaliteit maken

Voer de opdracht az acr create uit om een zone-redundant register te maken in de Premium-servicelaag. Kies een regio die beschikbaarheidszones voor Azure Container Registry ondersteunt. In het volgende voorbeeld is zoneredundantie ingeschakeld in de regio Eastus . Zie de Help voor opdrachten az acr create 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 zone-redundant:

{
 [...]
"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 optie is ingeschakeld, is de replica zone-redundant:

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

Een zone-redundant register maken - portal

  1. Meld u aan bij het Azure-portaal.

  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 in Locatie een regio die zoneredundantie ondersteunt voor Azure Container Registry, zoals VS - oost.

  5. Selecteer Premium in SKU.

  6. Selecteer Ingeschakeld in beschikbaarheidszones.

  7. Configureer desgewenst meer registerinstellingen en selecteer Vervolgens Beoordelen en maken.

  8. Selecteer Maken om het registerexemplaren 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 de locatie in het venster Replicatie maken. Selecteer In beschikbaarheidszones de optie Ingeschakeld en selecteer vervolgens Maken.

    Zone-redundante replicatie inschakelen in Azure Portal

Een zone-redundant register maken - sjabloon

Een brongroep maken

Voer zo nodig de opdracht az group create uit om een resourcegroep te maken voor het register 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, geografisch gerepliceerd register te maken. De sjabloon maakt standaard zoneredundantie in het register en een regionale replica mogelijk.

Kopieer de volgende inhoud naar een nieuw bestand en sla het 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 maakt een unieke naam voor u
  • een locatie voor de replica die beschikbaarheidszones ondersteunt, 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