Zoneredundantie inschakelen in Azure Container Registry voor tolerantie en hoge beschikbaarheid

Naast geo-replicatie, die registergegevens repliceert in een of meer Azure-regio's om beschikbaarheid te bieden en latentie voor regionale bewerkingen te verminderen, biedt Azure Container Registry ondersteuning voor 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, 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 - zuid-centraal
    Amerikaanse overheid Virginia
    VS - west 2
    US - west 3
    Frankrijk - centraal
    Duitsland - west-centraal
    Europa - noord
    Noorwegen - oost
    Europa -west
    Verenigd Koninkrijk Zuid
    Zuid-Afrika - noord
    Australië - oost
    India - centraal
    Japan - oost
    Korea - centraal
    Azië - zuidoost
    Azië - oost
  • Regioconversies naar beschikbaarheidszones worden momenteel niet ondersteund. Als u ondersteuning voor beschikbaarheidszones in een regio wilt inschakelen, moet het register worden gemaakt in de gewenste regio, waarbij ondersteuning voor beschikbaarheidszones is ingeschakeld of moet een gerepliceerde regio worden toegevoegd met ondersteuning voor beschikbaarheidszones ingeschakeld.

  • Een register met een AZ-stempel maakt standaard een thuisregioreplicatie met een az-stempel. 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 de 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 azure-containerregister met een flexibele en hoge beschikbaarheid te maken binnen een Azure-regio. Organisaties kunnen bijvoorbeeld een zoneredundante Azure-containerregister instellen met andere ondersteunde Azure-resources om te voldoen aan de vereisten voor gegevenslocatie of andere nalevingsvereisten, terwijl ze hoge beschikbaarheid binnen een regio bieden.

Azure Container Registry ondersteunt ook geo-replicatie, die de service repliceert in meerdere regio's, waardoor redundantie en lokaliteit kunnen worden gebruikt om resources op andere locaties te berekenen. 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 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>

Register met zone maken

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

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

Een zoneredundant register maken - portal

  1. Meld u aan bij Azure Portal op https://portal.azure.com.

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

  3. Selecteer of maak een resourcegroep op het tabblad Basisbeginselen 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 aanvullende registerinstellingen en selecteer Vervolgens Controleren en maken.

  8. Selecteer Maken om het registerexemplementeren te implementeren.

    Enable zone redundancy in Azure portal

Een zoneredundante 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 beschikbaarheidszonesde optie Ingeschakeld en selecteer vervolgens Maken.

    Enable zone-redundant replication in Azure portal

Een zoneredundant register maken - sjabloon

Een resourcegroep maken

Voer indien 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 zoneredundant, geo-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-preview",
        "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-preview",
        "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-preview').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 zoneredundant:

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

Volgende stappen