Dayanıklılık ve yüksek kullanılabilirlik için Azure Container Registry'de bölge yedekliliğini etkinleştirme

Kullanılabilirlik sağlamak ve bölgesel işlemler için gecikme süresini azaltmak için kayıt defteri verilerini bir veya daha fazla Azure bölgesinde çoğaltan coğrafi çoğaltmaya ek olarak, Azure Container Registry isteğe bağlı alanlar arası yedekliliği destekler. Bölge yedekliliği , belirli bir bölgedeki kayıt defteri veya çoğaltma kaynağı (çoğaltma) için dayanıklılık ve yüksek kullanılabilirlik sağlar.

Bu makalede Azure CLI, Azure portal veya Azure Resource Manager şablonu kullanılarak alanlar arası yedekli kapsayıcı kayıt defteri veya çoğaltmanın nasıl ayarlanacağı gösterilmektedir.

Alanlar arası yedeklilik, Premium kapsayıcı kayıt defteri hizmet katmanının bir özelliğidir. Kayıt defteri hizmet katmanları ve sınırları hakkında bilgi için bkz. Azure Container Registry hizmet katmanları.

Bölgesel Destek

  • ACR Kullanılabilirlik Alanları aşağıdaki bölgelerde desteklenir:

    Kuzey ve Güney Amerika Avrupa Afrika Asya Pasifik
    Güney Brezilya
    Orta Kanada
    Central US
    Doğu ABD
    Doğu ABD 2
    Doğu ABD 2 EUAP
    Orta Güney ABD
    ABD Hükümeti Virginia
    Batı ABD 2
    Batı ABD 3
    Orta Fransa
    Orta Batı Almanya
    Kuzey Avrupa
    Doğu Norveç
    Orta İsveç
    Kuzey İsviçre
    Güney Birleşik Krallık
    West Europe
    Güney Afrika - Kuzey
    Doğu Avustralya
    Orta Hindistan
    Kuzey Çin 3
    Doğu Asya
    Doğu Japonya
    Güney Kore - Orta
    Orta Katar
    Güneydoğu Asya
    Kuzey BAE
  • Kullanılabilirlik alanlarına bölge dönüştürmeleri şu anda desteklenmemektedir.

  • Bir bölgede kullanılabilirlik alanı desteğini etkinleştirmek için, kullanılabilirlik alanı desteği etkinleştirilmiş olarak istenen bölgede kayıt defterini oluşturun veya kullanılabilirlik alanı desteği etkinleştirilmiş çoğaltılmış bir bölge ekleyin.

  • AZ etkin damgalı bir kayıt defteri, varsayılan olarak AZ etkin damgalı bir giriş bölgesi çoğaltması oluşturur. AZ damgası etkinleştirildikten sonra devre dışı bırakılamaz.

  • Giriş bölgesi çoğaltması, giriş bölgesi kayıt defterini temsil eder. Kullanılabilirlik alanı özelliklerini görüntülemeye ve yönetmeye yardımcı olur ve silinemez.

  • Çoğaltmalar oluşturulduktan sonra çoğaltmaların silinmesi ve yeniden oluşturulması dışında kullanılabilirlik alanı bölge başınadır. Durumlarını değiştiremezsiniz.

  • Bölge yedekliliği bir bölgede devre dışı bırakılamaz.

  • ACR Görevleri henüz kullanılabilirlik alanlarını desteklemez.

Alanlar arası yedeklilik hakkında

Azure bölgesinde dayanıklı ve yüksek kullanılabilirliğe sahip bir Azure kapsayıcı kayıt defteri oluşturmak için Azure kullanılabilirlik alanlarını kullanın. Örneğin kuruluşlar, bir bölgede yüksek kullanılabilirlik sağlarken veri yerleşimi veya diğer uyumluluk gereksinimlerini karşılamak için desteklenen diğer Azure kaynaklarıyla alanlar arası yedekli bir Azure kapsayıcı kayıt defteri ayarlayabilir.

Azure Container Registry, hizmeti birden çok bölgede çoğaltarak diğer konumlardaki kaynakları hesaplamak için yedekliliği ve yerelliği etkinleştiren coğrafi çoğaltmayı da destekler. Bir bölge içinde yedeklilik için kullanılabilirlik alanlarının ve birden çok bölgede coğrafi çoğaltmanın birleşimi, bir kayıt defterinin hem güvenilirliğini hem de performansını artırır.

Kullanılabilirlik alanları, bir Azure bölgesi içindeki benzersiz fiziksel konumlardır. Dayanıklılığı güvence altına almak için etkinleştirilmiş tüm bölgelerde en az üç ayrı alan vardır. Her bölgede bağımsız güç, soğutma ve ağ ile donatılmış bir veya daha fazla veri merkezi vardır. Alanlar arası yedeklilik için yapılandırıldığında, bir kayıt defteri (veya farklı bir bölgedeki kayıt defteri çoğaltması) bölgedeki tüm kullanılabilirlik alanları arasında çoğaltılır ve veri merkezi hataları olduğunda kullanılabilir durumda olur.

Alanlar arası yedekli kayıt defteri oluşturma - CLI

Alanlar arası yedekliliği etkinleştirmek üzere Azure CLI'yı kullanmak için Azure CLI sürüm 2.17.0 veya üzeri ya da Azure Cloud Shell gerekir. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Kaynak grubu oluşturma

Gerekirse az group create komutunu çalıştırarak kayıt defteri için bir kaynak grubu oluşturun.

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

Bölge etkin kayıt defteri oluşturma

Premium hizmet katmanında alanlar arası yedekli bir kayıt defteri oluşturmak için az acr create komutunu çalıştırın. Azure Container Registry için kullanılabilirlik alanlarını destekleyen bir bölge seçin. Aşağıdaki örnekte, eastus bölgesinde bölge yedekliliği etkinleştirilmiştir. az acr create Daha fazla kayıt defteri seçeneği için komut yardımına bakın.

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

Komut çıkışında kayıt defterinin zoneRedundancy özelliğini not edin. Etkinleştirildiğinde, kayıt defteri alanlar arası yedekli olur:

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

Alanlar arası yedekli çoğaltma oluşturma

westus2 gibi Azure Container Registry için kullanılabilirlik alanlarını destekleyen bir bölgede alanlar arası yedekli kayıt defteri çoğaltması oluşturmak için az acr replication create komutunu çalıştırın.

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

Komut çıkışında çoğaltmanın zoneRedundancy özelliğini not edin. Etkinleştirildiğinde çoğaltma alanlar arası yedekli olur:

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

Alanlar arası yedekli kayıt defteri oluşturma - portal

  1. Azure Portal oturum açın.

  2. Kaynak >Kapsayıcıları Kapsayıcı>Kayıt Defteri oluştur'u seçin.

  3. Temel Bilgiler sekmesinde bir kaynak grubu seçin veya oluşturun ve benzersiz bir kayıt defteri adı girin.

  4. Konum bölümünde doğu ABD gibi Azure Container Registry için bölge yedekliliğini destekleyen bir bölge seçin.

  5. SKU'daPremium'a tıklayın.

  6. Kullanılabilirlik alanları'ndaEtkin'i seçin.

  7. İsteğe bağlı olarak, daha fazla kayıt defteri ayarı yapılandırın ve ardından Gözden geçir ve oluştur'u seçin.

  8. Kayıt defteri örneğini dağıtmak için Oluştur'u seçin.

    Azure portal'da bölge yedekliliğini etkinleştirme

Alanlar arası yedekli çoğaltma oluşturmak için:

  1. Premium katmanı kapsayıcı kayıt defterinize gidin ve Çoğaltmalar'ı seçin.

  2. Görüntülenen haritada, batı ABD 2 gibi Azure Container Registry için alanlar arası yedekliliği destekleyen bir bölgede yeşil bir altıgen seçin. İsterseniz + Ekle'yi de seçebilirsiniz.

  3. Çoğaltma oluştur penceresinde Konum'u onaylayın. Kullanılabilirlik alanları'ndaEtkin'i ve ardından Oluştur'u seçin.

    Azure portal'da alanlar arası yedekli çoğaltmayı etkinleştirme

Alanlar arası yedekli kayıt defteri oluşturma - şablon

Kaynak grubu oluşturma

Gerekirse, Azure Container Registry için kullanılabilirlik alanlarını destekleyeneastus gibi bir bölgede kayıt defteri için bir kaynak grubu oluşturmak üzere az group create komutunu çalıştırın. Bu bölge, kayıt defteri konumunu ayarlamak için şablon tarafından kullanılır.

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

Şablonu dağıtma

Alanlar arası yedekli, coğrafi olarak çoğaltılmış bir kayıt defteri oluşturmak için aşağıdaki Resource Manager şablonunu kullanabilirsiniz. Şablon varsayılan olarak kayıt defterinde ve bölgesel çoğaltmada bölge yedekliliğini etkinleştirir.

Aşağıdaki içeriği yeni bir dosyaya kopyalayın ve gibi registryZone.jsonbir dosya adı kullanarak kaydedin.

{
    "$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"
      }
    }
  }

Yukarıdaki şablon dosyasını kullanarak kayıt defterini oluşturmak için aşağıdaki az deployment group create komutunu çalıştırın. Gösterildiği yerde şunları sağlayın:

  • benzersiz bir kayıt defteri adı kullanın veya şablonu parametresiz dağıttığınızda sizin için benzersiz bir ad oluşturur
  • westus2 gibi kullanılabilirlik alanlarını destekleyen çoğaltma için bir konum
az deployment group create \
  --resource-group <resource-group-name> \
  --template-file registryZone.json \
  --parameters acrName=<registry-name> acrReplicaLocation=<replica-location>

Komut çıkışında, kayıt defteri ve çoğaltmanın özelliğini not edin zoneRedundancy . Etkinleştirildiğinde her kaynak alanlar arası yedeklidir:

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

Sonraki adımlar