Włączanie nadmiarowości strefy w Azure Container Registry w celu zapewnienia odporności i wysokiej dostępności

Oprócz replikacji geograficznej, która replikuje dane rejestru w co najmniej jednym regionie świadczenia usługi Azure w celu zapewnienia dostępności i zmniejszenia opóźnienia dla operacji regionalnych, Azure Container Registry obsługuje opcjonalną nadmiarowość strefy. Nadmiarowość strefy zapewnia odporność i wysoką dostępność dla zasobu rejestru lub replikacji (repliki) w określonym regionie.

W tym artykule pokazano, jak skonfigurować strefowo nadmiarowy rejestr kontenerów lub replikę przy użyciu interfejsu wiersza polecenia platformy Azure, Azure Portal lub szablonu usługi Azure Resource Manager.

Nadmiarowość strefowa to funkcja warstwy usługi rejestru kontenerów Premium. Aby uzyskać informacje o warstwach i limitach usługi rejestru, zobacz Azure Container Registry warstwy usług.

Pomoc techniczna regionalna

  • Usługa ACR Strefy dostępności jest obsługiwana w następujących regionach:

    Ameryki Europa Afryka Azja i Pacyfik
    Brazylia Południowa
    Kanada Środkowa
    Central US
    East US
    Wschodnie stany USA 2
    South Central US
    Rząd USA Wirginia
    Zachodnie stany USA 2
    Zachodnie stany USA 3
    Francja Środkowa
    Niemcy Środkowo-Zachodnie
    Europa Północna
    Norwegia Wschodnia
    West Europe
    Południowe Zjednoczone Królestwo
    Północna Republika Południowej Afryki
    Australia Wschodnia
    Indie Środkowe
    Japonia Wschodnia
    Korea Środkowa
    Southeast Asia
    Azja Wschodnia
  • Konwersje regionów na strefy dostępności nie są obecnie obsługiwane. Aby włączyć obsługę strefy dostępności w regionie, rejestr musi zostać utworzony w żądanym regionie z włączoną obsługą strefy dostępności lub należy dodać zreplikowany region z włączoną obsługą strefy dostępności.

  • Rejestr z sygnaturą z włączoną obsługą az tworzy replikację regionu macierzystego z sygnaturą z włączoną funkcją AZ domyślnie. Nie można wyłączyć sygnatury AZ po jej włączeniu.

  • Replikacja regionu macierzystego reprezentuje rejestr regionów macierzystych. Ułatwia ona wyświetlanie właściwości strefy dostępności i zarządzanie nimi i nie można ich usunąć.

  • Strefa dostępności jest na region, po utworzeniu replikacji nie można zmienić ich stanów, z wyjątkiem usuwania i ponownego tworzenia replikacji.

  • Nadmiarowość strefy nie może być wyłączona w regionie.

  • Usługa ACR Tasks nie obsługuje jeszcze stref dostępności.

Informacje o nadmiarowości strefy

Strefy dostępności platformy Azure umożliwiają tworzenie odpornego i wysokiej dostępności rejestru kontenerów platformy Azure w regionie świadczenia usługi Azure. Na przykład organizacje mogą skonfigurować strefowo nadmiarowy rejestr kontenerów platformy Azure z innymi obsługiwanymi zasobami platformy Azure w celu spełnienia wymagań dotyczących przechowywania danych lub innych wymagań dotyczących zgodności, zapewniając jednocześnie wysoką dostępność w regionie.

Azure Container Registry obsługuje również replikację geograficzną, która replikuje usługę w wielu regionach, umożliwiając nadmiarowość i lokalność zasobów obliczeniowych w innych lokalizacjach. Połączenie stref dostępności na potrzeby nadmiarowości w regionie i replikacji geograficznej w wielu regionach zwiększa zarówno niezawodność, jak i wydajność rejestru.

Strefy dostępności to unikatowe lokalizacje fizyczne w regionie świadczenia usługi Azure. W celu zapewnienia odporności istnieją co najmniej trzy osobne strefy we wszystkich włączonych regionach. Każda strefa ma co najmniej jedno centrum danych wyposażone w niezależne zasilanie, chłodzenie i sieć. Po skonfigurowaniu pod kątem nadmiarowości strefy rejestr (lub replika rejestru w innym regionie) jest replikowany we wszystkich strefach dostępności w regionie, zachowując jego dostępność w przypadku awarii centrum danych.

Tworzenie rejestru strefowo nadmiarowego — interfejs wiersza polecenia

Aby użyć interfejsu wiersza polecenia platformy Azure do włączenia nadmiarowości strefy, potrzebujesz interfejsu wiersza polecenia platformy Azure w wersji 2.17.0 lub nowszej albo usługi Azure Cloud Shell. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Tworzenie grupy zasobów

W razie potrzeby uruchom polecenie az group create , aby utworzyć grupę zasobów dla rejestru.

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

Tworzenie rejestru z obsługą strefy

Uruchom polecenie az acr create, aby utworzyć rejestr strefowo nadmiarowy w warstwie usługi Premium. Wybierz region obsługujący strefy dostępności dla Azure Container Registry. W poniższym przykładzie nadmiarowość strefy jest włączona w regionie eastus . az acr create Zobacz pomoc dotyczącą poleceń, aby uzyskać więcej opcji rejestru.

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

W danych wyjściowych polecenia zanotuj zoneRedundancy właściwość rejestru. Po włączeniu rejestru jest strefowo nadmiarowy:

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

Tworzenie replikacji strefowo nadmiarowej

Uruchom polecenie az acr replication create, aby utworzyć strefowo nadmiarową replikę rejestru w regionie obsługującym strefy dostępności dla Azure Container Registry, na przykład westus2.

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

W danych wyjściowych polecenia zanotuj zoneRedundancy właściwość repliki. Po włączeniu replika jest strefowo nadmiarowa:

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

Tworzenie rejestru strefowo nadmiarowego — portal

  1. Zaloguj się do witryny Azure Portal pod adresem https://portal.azure.com.

  2. Wybierz pozycję Utwórz zasób>Container>Registry.

  3. Na karcie Podstawy wybierz lub utwórz grupę zasobów i wprowadź unikatową nazwę rejestru.

  4. W obszarze Lokalizacja wybierz region obsługujący nadmiarowość stref dla Azure Container Registry, na przykład Wschodnie stany USA.

  5. W obszarze JEDNOSTKA SKU wybierz pozycję Premium.

  6. W obszarze Strefy dostępności wybierz pozycję Włączone.

  7. Opcjonalnie skonfiguruj dodatkowe ustawienia rejestru, a następnie wybierz pozycję Przejrzyj i utwórz.

  8. Wybierz pozycję Utwórz , aby wdrożyć wystąpienie rejestru.

    Enable zone redundancy in Azure portal

Aby utworzyć replikację strefowo nadmiarową:

  1. Przejdź do rejestru kontenerów w warstwie Premium i wybierz pozycję Replikacje.

  2. Na wyświetlonej mapie wybierz zielony sześciokąt w regionie obsługującym nadmiarowość strefy dla Azure Container Registry, na przykład Zachodnie stany USA 2. Możesz też wybrać pozycję + Dodaj.

  3. W oknie Tworzenie replikacji potwierdź lokalizację. W obszarze Strefy dostępności wybierz pozycję Włączone, a następnie wybierz pozycję Utwórz.

    Enable zone-redundant replication in Azure portal

Tworzenie rejestru strefowo nadmiarowego — szablon

Tworzenie grupy zasobów

W razie potrzeby uruchom polecenie az group create, aby utworzyć grupę zasobów dla rejestru w regionie obsługującym strefy dostępności dla Azure Container Registry, takich jak eastus. Ten region jest używany przez szablon do ustawiania lokalizacji rejestru.

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

Wdrożenie szablonu

Poniższy szablon Resource Manager umożliwia utworzenie rejestru strefowo nadmiarowego i zreplikowanego geograficznie. Szablon domyślnie włącza nadmiarowość strefy w rejestrze i repliki regionalnej.

Skopiuj następującą zawartość do nowego pliku i zapisz go przy użyciu nazwy pliku, takiej jak 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"
      }
    }
  }

Uruchom następujące polecenie az deployment group create , aby utworzyć rejestr przy użyciu poprzedniego pliku szablonu. Tam, gdzie wskazano, podaj:

  • unikatowa nazwa rejestru lub wdróż szablon bez parametrów i utworzy unikatową nazwę
  • lokalizacja repliki, która obsługuje strefy dostępności, takie jak westus2
az deployment group create \
  --resource-group <resource-group-name> \
  --template-file registryZone.json \
  --parameters acrName=<registry-name> acrReplicaLocation=<replica-location>

W danych wyjściowych polecenia zanotuj zoneRedundancy właściwość rejestru i repliki. Po włączeniu każdy zasób jest strefowo nadmiarowy:

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

Następne kroki