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 platformy Azure w celu zapewnienia dostępności i zmniejszenia opóźnienia dla operacji regionalnych, Azure Container Registry obsługuje nadmiarowość strefy opcjonalnej. Nadmiarowość strefy zapewnia odporność i wysoką dostępność 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ść strefy to funkcja warstwy usługi rejestru kontenerów Premium. Aby uzyskać informacje na temat warstw i limitów usługi rejestru, zobacz Azure Container Registry warstwy usług.

Obsługa 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
    Wschodnie stany USA 2 — EUAP
    South Central US
    Wirginia rządu USA
    Zachodnie stany USA 2
    Zachodnie stany USA 3
    Francja Środkowa
    Niemcy Środkowo-Zachodnie
    Europa Północna
    Norwegia Wschodnia
    Szwecja Środkowa
    Szwajcaria Północna
    Południowe Zjednoczone Królestwo
    West Europe
    Północna Republika Południowej Afryki
    Australia Wschodnia
    Indie Środkowe
    Chiny Północne 3
    Azja Wschodnia
    Japonia Wschodnia
    Korea Środkowa
    Katar Środkowy
    Southeast Asia
    Północne Zjednoczone Emiraty Arabskie
  • Konwersje regionów na strefy dostępności nie są obecnie obsługiwane.

  • Aby włączyć obsługę strefy dostępności w regionie, utwórz rejestr w żądanym regionie z włączoną obsługą strefy dostępności lub dodaj zreplikowany region z włączoną obsługą strefy dostępności.

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

  • Replikacja regionu macierzystego reprezentuje rejestr regionu macierzystego. Pomaga wyświetlać właściwości strefy dostępności i zarządzać nimi i nie można ich usunąć.

  • Strefa dostępności jest w poszczególnych regionach, 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 stref

Użyj stref dostępności platformy Azure, aby utworzyć odporny i wysokiej dostępności rejestr 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 , aby spełnić wymagania dotyczące przechowywania danych lub innych wymagań dotyczących zgodności, zapewniając 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 niezawodność 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 dostęp do niego, jeśli wystąpią awarie 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 Aby uzyskać więcej opcji rejestru, zobacz pomoc dotyczącą poleceń.

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ć replikę rejestru strefowo nadmiarowego w regionie obsługującym strefy dostępności dla Azure Container Registry, takich jak 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ę w witrynie Azure Portal.

  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ść strefy 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 więcej ustawień rejestru, a następnie wybierz pozycję Przejrzyj i utwórz.

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

    Włączanie nadmiarowości strefy w Azure Portal

Aby utworzyć replikację strefowo nadmiarową:

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

  2. Na wyświetlonej mapie wybierz zielony sześciokąt w regionie, który obsługuje nadmiarowość strefy dla Azure Container Registry, takich jak 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.

    Włączanie replikacji strefowo nadmiarowej w 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

Aby utworzyć rejestr strefowo nadmiarowy, zreplikowany geograficznie, można użyć następującego szablonu Resource Manager. Szablon domyślnie włącza nadmiarowość strefy w rejestrze i replikę regionalną.

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

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

  • unikatowa nazwa rejestru lub wdróż szablon bez parametrów i utworzy unikatową nazwę dla Ciebie
  • lokalizacja repliki obsługującej 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