Sdílet prostřednictvím


Přenos artefaktů do jiného registru

Tento článek ukazuje, jak přenést kolekce imagí nebo jiných artefaktů registru z jednoho registru kontejneru Azure do jiného registru. Zdrojové a cílové registry můžou být ve stejném nebo jiném předplatném, tenantech Active Directory, cloudech Azure nebo fyzicky odpojených cloudech.

Pokud chcete přenášet artefakty, vytvoříte kanál přenosu, který replikuje artefakty mezi dvěma registry pomocí úložiště objektů blob:

  • Artefakty ze zdrojového registru se exportují do objektu blob ve zdrojovém účtu úložiště.
  • Objekt blob se zkopíruje ze zdrojového účtu úložiště do cílového účtu úložiště.
  • Objekt blob v cílovém účtu úložiště se naimportuje jako artefakty v cílovém registru. Kanál importu můžete nastavit tak, aby se aktivoval vždy, když se objekt blob artefaktu aktualizuje v cílovém úložišti.

V tomto článku vytvoříte požadované prostředky pro vytvoření a spuštění kanálu přenosu. Azure CLI slouží ke zřízení přidružených prostředků, jako jsou tajné kódy úložiště. Doporučuje se Azure CLI verze 2.2.0 nebo novější. Pokud potřebujete instalaci nebo upgrade rozhraní příkazového řádku (CLI), přečtěte si téma Instalace Azure CLI.

Tato funkce je k dispozici ve vrstvě služby Registru kontejneru Premium . Informace o úrovních a omezeních služby registru najdete v tématu Úrovně služby Azure Container Registry.

Důležité

Tato funkce je aktuálně dostupná jako ukázková verze. Verze Preview vám zpřístupňujeme pod podmínkou, že budete souhlasit s dodatečnými podmínkami použití. Některé aspekty této funkce se můžou před zveřejněním změnit.

Vezměte v úvahu váš případ použití

Přenos je ideální pro kopírování obsahu mezi dvěma registry kontejnerů Azure v fyzicky odpojených cloudech zprostředkovaných účty úložiště v každém cloudu. Pokud místo toho chcete kopírovat image z registrů kontejnerů v připojených cloudech, včetně Docker Hubu a jiných dodavatelů cloudu, doporučujeme import imagí.

Požadavky

  • Registry kontejnerů – K přenosu potřebujete existující zdrojový registr s artefakty a cílovým registrem. Přenos ACR je určený pro přesun mezi fyzicky odpojenými cloudy. Pro účely testování můžou být zdrojové a cílové registry ve stejném nebo jiném předplatném Azure, tenantovi Active Directory nebo cloudu.

    Pokud potřebujete vytvořit registr, přečtěte si článek Rychlý start: Vytvoření privátního registru kontejneru pomocí Azure CLI.

  • Účty úložiště – Vytvořte zdrojové a cílové účty úložiště v předplatném a umístění podle vašeho výběru. Pro účely testování můžete použít stejné předplatné nebo předplatná jako zdrojové a cílové registry. V případě scénářů mezi cloudy obvykle vytvoříte samostatný účet úložiště v každém cloudu.

    V případě potřeby vytvořte účty úložiště pomocí Azure CLI nebo jiných nástrojů.

    Vytvořte kontejner objektů blob pro přenos artefaktů v každém účtu. Vytvořte například kontejner s názvem transfer.

  • Trezory klíčů – Trezory klíčů jsou potřeba k ukládání tajných kódů tokenů SAS používaných pro přístup ke zdrojovému a cílovému účtu úložiště. Vytvořte zdrojové a cílové trezory klíčů ve stejném předplatném Nebo předplatných Azure jako vaše zdrojové a cílové registry. Pro demonstrační účely šablony a příkazy použité v tomto článku také předpokládají, že zdrojové a cílové trezory klíčů jsou umístěné ve stejných skupinách prostředků jako zdrojové a cílové registry. Toto použití běžných skupin prostředků není povinné, ale zjednodušuje šablony a příkazy používané v tomto článku.

    V případě potřeby vytvořte trezory klíčů pomocí Azure CLI nebo jiných nástrojů.

  • Proměnné prostředí – Například příkazy v tomto článku nastavte následující proměnné prostředí pro zdrojová a cílová prostředí. Všechny příklady jsou formátované pro prostředí Bash.

    SOURCE_RG="<source-resource-group>"
    TARGET_RG="<target-resource-group>"
    SOURCE_KV="<source-key-vault>"
    TARGET_KV="<target-key-vault>"
    SOURCE_SA="<source-storage-account>"
    TARGET_SA="<target-storage-account>"
    

Přehled scénáře

Vytvoříte následující tři prostředky kanálu pro přenos imagí mezi registry. Všechny se vytvářejí pomocí operací PUT. Tyto prostředky pracují se zdrojovými a cílovými registry a účty úložiště.

Ověřování úložiště používá tokeny SAS spravované jako tajné kódy v trezorech klíčů. Kanály používají spravované identity ke čtení tajných kódů v trezorech.

  • ExportPipeline – dlouhodobý prostředek, který obsahuje základní informace o zdrojovém registru a účtu úložiště. Tyto informace zahrnují identifikátor URI kontejneru objektů blob zdrojového úložiště a trezor klíčů, který spravuje zdrojový token SAS.
  • ImportPipeline – dlouhodobý prostředek, který obsahuje základní informace o cílovém registru a účtu úložiště. Tyto informace zahrnují identifikátor URI kontejneru objektů blob cílového úložiště a trezor klíčů, který spravuje cílový token SAS. Trigger importu je ve výchozím nastavení povolený, takže kanál se spustí automaticky, když objekt blob artefaktu přejde do cílového kontejneru úložiště.
  • PipelineRun – prostředek použitý k vyvolání prostředku ExportPipeline nebo ImportPipeline.
    • ExportPipeline spustíte ručně vytvořením prostředku PipelineRun a určíte artefakty, které se mají exportovat.
    • Pokud je aktivační událost importu povolená, spustí se importPipeline automaticky. Můžete ho také spustit ručně pomocí rutiny PipelineRun.
    • V současné době je možné s každým spuštěním kanálu přenést maximálně 50 artefaktů .

Co je třeba vědět

  • ExportPipeline a ImportPipeline budou obvykle v různých tenantech služby Active Directory přidružených ke zdrojovému a cílovému cloudu. Tento scénář vyžaduje samostatné spravované identity a trezory klíčů pro prostředky exportu a importu. Pro účely testování je možné tyto prostředky umístit do stejného cloudu a sdílet identity.
  • Ve výchozím nastavení šablony ExportPipeline a ImportPipeline umožňují přístup k tajným kódům trezoru klíčů spravovanou identitou přiřazenou systémem. Šablony ExportPipeline a ImportPipeline také podporují identitu přiřazenou uživatelem, kterou zadáte.

Vytvoření a uložení klíčů SAS

Přenos používá tokeny sdíleného přístupového podpisu (SAS) pro přístup k účtům úložiště ve zdrojovém a cílovém prostředí. Vygenerujte a ukládejte tokeny, jak je popsáno v následujících částech.

Důležité

I když ACR Transfer bude fungovat s ručně vygenerovaným tokenem SAS uloženým v tajném klíči služby Keyvault, pro produkční úlohy důrazně doporučujeme místo toho používat tajné kódy definic SAS spravovaného úložiště keyvault.

Generování tokenu SAS pro export

Spuštěním příkazu az storage container generate-sas vygenerujte token SAS pro kontejner ve zdrojovém účtu úložiště, který se používá k exportu artefaktů.

Doporučená oprávnění tokenu: čtení, zápis, seznam, přidání

V následujícím příkladu je výstup příkazu přiřazen k proměnné prostředí EXPORT_SAS s předponou znaku "?". --expiry Aktualizujte hodnotu vašeho prostředí:

EXPORT_SAS=?$(az storage container generate-sas \
  --name transfer \
  --account-name $SOURCE_SA \
  --expiry 2021-01-01 \
  --permissions alrw \
  --https-only \
  --output tsv)

Uložení tokenu SAS pro export

Uložte token SAS do zdrojového trezoru klíčů Azure pomocí příkazu az keyvault secret set:

az keyvault secret set \
  --name acrexportsas \
  --value $EXPORT_SAS \
  --vault-name $SOURCE_KV

Generování tokenu SAS pro import

Spuštěním příkazu az storage container generate-sas vygenerujte token SAS pro kontejner v cílovém účtu úložiště, který se používá k importu artefaktů.

Doporučená oprávnění tokenu: Čtení, odstranění, výpis

V následujícím příkladu je výstup příkazu přiřazen k proměnné prostředí IMPORT_SAS s předponou znaku "?". --expiry Aktualizujte hodnotu vašeho prostředí:

IMPORT_SAS=?$(az storage container generate-sas \
  --name transfer \
  --account-name $TARGET_SA \
  --expiry 2021-01-01 \
  --permissions dlr \
  --https-only \
  --output tsv)

Uložení tokenu SAS pro import

Uložte token SAS do cílového trezoru klíčů Azure pomocí příkazu az keyvault secret set:

az keyvault secret set \
  --name acrimportsas \
  --value $IMPORT_SAS \
  --vault-name $TARGET_KV

Další kroky