Aktivieren von Zonenredundanz in Azure Container Registry für Resilienz und Hochverfügbarkeit

Zusätzlich zur Georeplikation, bei der Registrierungsdaten in einer oder zwischen mehreren Azure-Regionen repliziert werden, um die Verfügbarkeit zu gewährleisten und Latenzzeiten für regionale Vorgänge zu verringern, unterstützt Azure Container Registry optionale Zonenredundanz. Zonenredundanz bietet Resilienz und Hochverfügbarkeit für eine Registrierung oder Replikationsressource (Replikat) in einer bestimmten Region.

In diesem Artikel wird gezeigt, wie Sie eine zonenredundante Containerregistrierung oder ein zonenredundantes Replikat mithilfe der Azure CLI, des Azure-Portals oder einer Azure Resource Manager-Vorlage einrichten.

Zonenredundanz ist eine Funktion der Containerregistrierungs-Dienstebene „Premium“. Informationen zu den Tarifen des Registrierungsdiensts und zu den Einschränkungen finden Sie unter Azure Container Registry-Tarife.

Regionsunterstützung

  • ACR-Verfügbarkeitszonen werden in den folgenden Regionen unterstützt:

    Amerika Europa Afrika Asien-Pazifik
    Brasilien Süd
    Kanada, Mitte
    USA (Mitte)
    East US
    USA (Ost) 2
    USA, Osten 2 (EUAP)
    USA Süd Mitte
    US-Regierung Virginia
    USA, Westen 2
    USA, Westen 3
    Frankreich, Mitte
    Deutschland, Westen-Mitte
    Nordeuropa
    Norwegen, Osten
    Schweden, Mitte
    Schweiz, Norden
    UK, Süden
    Europa, Westen
    Südafrika, Norden
    Australien (Osten)
    Indien, Mitte
    China, Norden 3
    Asien, Osten
    Japan, Osten
    Korea, Mitte
    Katar, Mitte
    Asien, Südosten
    Vereinigte Arabische Emirate, Norden
  • Regionskonvertierungen in Verfügbarkeitszonen werden derzeit nicht unterstützt.

  • Um die Unterstützung für Verfügbarkeitszonen in einer Region zu aktivieren, erstellen Sie die Registrierung entweder in der gewünschten Region mit aktivierter Verfügbarkeitszonenunterstützung, oder Sie fügen sie mit aktivierter Unterstützung für Verfügbarkeitszonen hinzu.

  • Eine Registrierung mit einem VZ-fähigen Stempel erstellt standardmäßig eine Replikation der Stammregion mit einem VZ-fähigen Stempel. Der VZ-Stempel kann nicht deaktiviert werden, nachdem er aktiviert wurde.

  • Die Replikation der Stammregion stellt die Registrierung der Stammregion dar. Sie hilft beim Anzeigen und Verwalten der Eigenschaften der Verfügbarkeitszone und kann nicht gelöscht werden.

  • Die Verfügbarkeitszone gilt pro Region. Nachdem die Replikationen erstellt wurden, können ihre Zustände nur durch Löschen und erneutes Erstellen der Replikationen geändert werden.

  • Zonenredundanz kann in einer Region nicht deaktiviert werden.

  • ACR Tasks unterstützt noch keine Verfügbarkeitszonen.

Informationen zur Zonenredundanz

Verwenden Sie Azure-Verfügbarkeitszonen, um eine robuste und hochverfügbare Azure-Containerregistrierung innerhalb einer Azure-Region zu erstellen. Organisationen können beispielsweise eine zonenredundante Azure-Containerregistrierung mit anderen unterstützten Azure-Ressourcen einrichten, um Datenresidenz- oder andere Complianceanforderungen zu erfüllen und gleichzeitig Hochverfügbarkeit innerhalb einer Region zu gewährleisten.

Azure Container Registry unterstützt außerdem Georeplikation, die den Dienst über mehrere Regionen hinweg repliziert, sodass Redundanz und Lokalität zu Compute-Ressourcen an anderen Standorten ermöglicht werden. Die Kombination aus Verfügbarkeitszonen für Redundanz innerhalb einer Region und Georeplikation über mehrere Regionen hinweg verbessert sowohl die Zuverlässigkeit als auch die Leistung einer Registrierung.

Verfügbarkeitszonen sind eindeutige physische Standorte in einer Azure-Region. Zur Gewährleistung der Resilienz sind in allen aktivierten Regionen mindestens drei separate Zonen vorhanden. Jede Zone enthält mindestens ein Rechenzentrum, das mit eigener unabhängiger Stromversorgung, Kühlung und Netzwerk ausgestattet ist. Wenn eine Registrierung (oder ein Registrierungsreplikat in einer anderen Region) für Zonenredundanz konfiguriert ist, wird sie über alle Verfügbarkeitszonen in der Region hinweg repliziert, sodass sie verfügbar bleibt, wenn es zu Rechenzentrumsausfällen kommt.

Erstellen einer zonenredundanten Registrierung: CLI

Zum Aktivieren der Zonenredundanz mithilfe der Azure CLI benötigen Sie mindestens Version 2.17.0 der Azure-Befehlszeilenschnittstelle oder Azure Cloud Shell. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Erstellen einer Ressourcengruppe

Führen Sie bei Bedarf den Befehl az group create aus, um eine Ressourcengruppe für die Registrierung zu erstellen.

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

Erstellen einer für Zonen aktivierten Registrierung

Führen Sie den Befehl az acr create aus, um eine zonenredundante Registrierung im Premium-Tarif zu erstellen. Wählen Sie eine Region aus, die für Azure Container Registry Verfügbarkeitszonen unterstützt. Im folgenden Beispiel ist die Zonenredundanz in der Region eastus aktiviert. In der Hilfe zum Befehl az acr create finden Sie Informationen zu weiteren Registrierungsoptionen.

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

Beachten Sie in der Befehlsausgabe die Eigenschaft zoneRedundancy für die Registrierung. Bei Aktivierung dieser Option ist die Registrierung zonenredundant:

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

Erstellen einer zonenredundanten Replikation

Führen Sie den Befehl az acr replication create aus, um ein zonenredundantes Registrierungsreplikat in einer Region zu erstellen, die Verfügbarkeitszonen für Azure Container Registry unterstützt, z. B. westus2.

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

Beachten Sie in der Befehlsausgabe die Eigenschaft zoneRedundancy für das Replikat. Bei Aktivierung dieser Option ist das Replikat zonenredundant:

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

Erstellen einer zonenredundanten Registrierung – Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. Klicken Sie auf Ressource erstellen>Container>Container Registry.

  3. Wählen Sie auf der Registerkarte Grundlagen eine Ressourcengruppe aus, oder erstellen Sie eine, und geben Sie einen eindeutigen Registrierungsnamen ein.

  4. Wählen Sie unter Standort eine Region aus, die Zonenredundanz für Azure Container Registry unterstützt, z. B. USA, Osten.

  5. Wählen Sie unter SKU die Option Premium aus.

  6. Wählen Sie unter Verfügbarkeitszonen die Option Aktiviert aus.

  7. Konfigurieren Sie optional weitere Registrierungseinstellungen, und wählen Sie dann Überprüfen und erstellen aus.

  8. Wählen Sie Erstellen, um die Registrierungsinstanz bereitzustellen.

    Aktivieren von Zonenredundanz im Azure-Portal

So erstellen Sie eine zonenredundante Replikation

  1. Navigieren Sie zu Ihrer Containerregistrierung der Premium-Dienstebene, und wählen Sie Replikationen aus.

  2. Wählen Sie auf der angezeigten Karte ein grünes Sechseck in einer Region aus, die Zonenredundanz für Azure Container Registry unterstützt, z. B. USA, Westen 2. Wählen Sie alternativ + Hinzufügen aus.

  3. Überprüfen Sie im Fenster Replikation erstellen den Wert unter Standort. Wählen Sie unter Verfügbarkeitszonen die Option Aktiviert und dann Erstellen aus.

    Aktivieren der zonenredundanten Replikation im Azure-Portal

Erstellen einer zonenredundanten Registrierung – Vorlage

Erstellen einer Ressourcengruppe

Führen Sie bei Bedarf den Befehl az group create aus, um eine Ressourcengruppe für die Registrierung in einer Region zu erstellen, die Verfügbarkeitszonen für Azure Container Registry unterstützt, z. B. „USA, Osten“ (eastus). Diese Region wird von der Vorlage zum Festlegen des Registrierungsstandorts verwendet.

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

Bereitstellen der Vorlage

Sie können die folgende Resource Manager-Vorlage verwenden, um eine zonenredundante, georeplizierte Registrierung zu erstellen. Die Vorlage aktiviert standardmäßig die Zonenredundanz in der Registrierung sowie ein regionales Replikat.

Kopieren Sie den folgenden Inhalt in eine neue Datei, und speichern Sie sie unter einem Dateinamen, z. B. 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"
      }
    }
  }

Führen Sie den folgenden Befehl az deployment group create aus, um die Registrierung mithilfe der vorherigen Vorlagendatei zu erstellen. Geben Sie, wenn angezeigt, Folgendes an:

  • Einen eindeutigen Registrierungsnamen, oder stellen Sie die Vorlage ohne Parameter bereit, und sie erstellt einen eindeutigen Name für Sie.
  • Einen Standort für das Replikat, der Verfügbarkeitszonen unterstützt, z. B. „USA, Westen 2“ (westus2).
az deployment group create \
  --resource-group <resource-group-name> \
  --template-file registryZone.json \
  --parameters acrName=<registry-name> acrReplicaLocation=<replica-location>

Beachten Sie in der Befehlsausgabe die Eigenschaft zoneRedundancy für die Registrierung und das Replikat. Wenn diese Option aktiviert ist, ist jede Ressource zonenredundant:

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

Nächste Schritte