Kapsayıcı kayıt defterini el ile başka bir bölgeye taşıma

Bir Azure kapsayıcı kayıt defterini bir Azure bölgesinden diğerine taşımanız gerekebilir. Örneğin, bir geliştirme işlem hattı çalıştırabilir veya farklı bir bölgede yeni bir dağıtım hedefi barındırabilir ve yakındaki bir kayıt defteri sağlamak isteyebilirsiniz.

Azure Kaynak Taşıyıcı şu anda Azure kapsayıcı kayıt defteri için taşıma işlemini otomatikleştiremiyorsa kapsayıcı kayıt defterini el ile farklı bir bölgeye taşıyabilirsiniz:

  • Kayıt defteri ayarlarını Resource Manager şablonuna aktarma
  • Farklı bir Azure bölgesine kayıt defteri dağıtmak için şablonu kullanma
  • Kayıt defteri içeriğini kaynak kayıt defterinden hedef kayıt defterine aktarma

Not

Aynı kapsayıcı görüntülerini birden çok Azure bölgesine dağıtmanız gerekiyorsa Azure Container Registry coğrafi çoğaltmayı da destekler. Bir kayıt defterini coğrafi olarak çoğaltarak (Premium hizmet katmanı gerekir), tek bir kayıt defterinden aynı görüntü ve etiket adlarına sahip birden çok bölgeye hizmet veresiniz.

Önkoşullar

Azure CLI

Dikkat edilmesi gerekenler

  • Kayıt defterini aynı abonelikteki farklı bir bölgeye taşımak için bu makaledeki adımları kullanın. Kayıt defterini aynı Active Directory kiracısında farklı bir Azure aboneliğine taşımak için daha fazla yapılandırma gerekebilir.
  • bir Resource Manager şablonunu dışarı aktarmak ve kullanmak, birçok kayıt defteri ayarlarının yeniden oluşturulmasına yardımcı olabilir. Şablonu düzenleyerek daha fazla ayar yapılandırabilir veya oluşturma işleminden sonra hedef kayıt defterini güncelleştirebilirsiniz.
  • Şu anda Azure Container Registry farklı bir Active Directory kiracısına kayıt defteri taşımayı desteklemez. Bu sınırlama hem müşteri tarafından yönetilen anahtarla şifrelenmiş kayıt defterleri hem de şifrelenmemiş kayıt defterleri için geçerlidir.
  • Bu makalede bir kayıt defterini taşıyamıyorsanız, yeni bir kayıt defteri oluşturun, ayarları el ile yeniden oluşturun ve Kayıt defteri içeriğini hedef kayıt defterinde içeri aktarın.
  • Kayıt defteri kaynaklarını aynı abonelikteki yeni bir kaynak grubuna taşıma veya kaynakları yeni bir aboneliğe taşıma adımlarını bulabilirsiniz .

Şablonu kaynak kayıt defterinden dışarı aktarma

Resource Manager şablonunu dışarı aktarmak için Azure portal, Azure CLI, Azure PowerShell veya diğer Azure araçlarını kullanın. Azure portal kullanmak için:

  1. Azure portal kaynak kayıt defterinize gidin.

  2. Menüde, Otomasyon'un altında Şablonu>dışarı aktar İndir'i seçin.

    Kapsayıcı kayıt defteri için şablonu dışarı aktarma

Hedef kayıt defterini yeni bölgede yeniden dağıtma

Şablonu değiştirme

İndirdiğiniz şablon JSON dosyasındaki kayıt defteri özelliklerini inceleyin ve gerekli değişiklikleri yapın. En azından:

  • Kayıt defteri adlarını defaultValue hedef kayıt defterinin istenen adıyla değiştirin
  • location hedef kayıt defteri için istenen Azure bölgesine güncelleştirin
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "registries_myregistry_name": {
            "defaultValue": "myregistry",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.ContainerRegistry/registries",
            "apiVersion": "2020-11-01-preview",
            "name": "[parameters('myregistry_name')]",
            "location": "centralus",
        ...
        }
    ]
}

Daha fazla bilgi için bkz. Azure portal dışarı aktarılan şablonu kullanma ve şablon başvurusu.

Önemli

Hedef kayıt defterini müşteri tarafından yönetilen bir anahtar kullanarak şifrelemek istiyorsanız şablonu gerekli yönetilen kimlik, anahtar kasası ve anahtar ayarlarıyla güncelleştirdiğinizden emin olun. Müşteri tarafından yönetilen anahtarı yalnızca kayıt defterini dağıtırken etkinleştirebilirsiniz.

Daha fazla bilgi için bkz . Müşteri tarafından yönetilen anahtarı kullanarak kayıt defterini şifreleme.

Kaynak grubu oluşturma

az group create komutunu kullanarak hedef kayıt defteri için bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

az group create --name myResourceGroup --location eastus

Hedef kayıt defterini yeni bölgeye dağıtma

Şablonu kullanarak hedef kayıt defterini dağıtmak için az deployment group create komutunu kullanın:

az deployment group create --resource-group myResourceGroup \
   --template-file template.json --name mydeployment

Not

Dağıtım sırasında hatalar görürseniz şablon dosyasındaki bazı yapılandırmaları güncelleştirmeniz ve komutu yeniden denemeniz gerekebilir.

Kayıt defteri içeriğini hedef kayıt defterine aktarma

Hedef bölgede kayıt defterini oluşturduktan sonra, kaynak kayıt defterinden korumak istediğiniz görüntüleri ve diğer yapıtları hedef kayıt defterine aktarmak için az acr import komutunu veya eşdeğer PowerShell komutunu Import-AzContainerImagekullanın. Komut örnekleri için bkz. Kapsayıcı görüntülerini kapsayıcı kayıt defterine aktarma.

  • Kaynak kayıt defterinizin içeriğini listelemeye yardımcı olmak için az acr repository list ve az acr repository show-tags veya Azure PowerShell eşdeğerleri Azure CLI komutlarını kullanın.
  • Tek tek yapıtlar için içeri aktarma komutunu çalıştırın veya bir yapıt listesi üzerinde çalıştırmak için betikleyin.

Aşağıdaki örnek Azure CLI betiği, kaynak depoları ve etiketleri numaralandırır ve ardından yapıtları aynı Azure aboneliğindeki bir hedef kayıt defterine aktarır. Belirli depoları veya etiketleri içeri aktarmak için gerektiğinde değiştirin. Farklı bir abonelik veya kiracıdaki bir kayıt defterinden içeri aktarmak için Kapsayıcı görüntülerini kapsayıcı kayıt defterine aktarma bölümündeki örneklere bakın.

#!/bin/bash
# Modify registry names for your environment
SOURCE_REG=myregistry
TARGET_REG=targetregistry

# Get list of source repositories
REPO_LIST=$(az acr repository list \
    --name $SOURCE_REG --output tsv)

# Enumerate tags and import to target registry
for repo in $REPO_LIST; do
    TAGS_LIST=$(az acr repository show-tags --name $SOURCE_REG --repository $repo --output tsv);
    for tag in $TAGS_LIST; do
        echo "Importing $repo:$tag";
        az acr import --name $TARGET_REG --source $SOURCE_REG.azurecr.io/$repo":"$tag;
    done
done

Hedef kayıt defterini doğrulama

Hedef kayıt defterinizde aşağıdaki bilgileri onaylayın:

  • Kayıt defteri adı, hizmet katmanı, genel erişim ve çoğaltmalar gibi kayıt defteri ayarları
  • Korumak istediğiniz içerik için depolar ve etiketler.

Ek yapılandırma

  • Gerekirse, hedef kayıt defterinde özel uç noktalar, IP erişim kuralları ve yönetilen kimlikler gibi ayarları el ile yapılandırın.

  • Geliştirme ve dağıtım sistemlerini kaynak kayıt defteri yerine hedef kayıt defterini kullanacak şekilde güncelleştirin.

  • Hedef kayıt defterine erişime izin vermek için tüm istemci güvenlik duvarı kurallarını güncelleştirin.

Özgün kayıt defterini silme

Hedef kayıt defterini, geçirilen içeriği ve doğrulanmış kayıt defteri ayarlarını başarıyla dağıttıktan sonra kaynak kayıt defterini silebilirsiniz.

Sonraki adımlar