Geografická replikace v Azure Container Registry
Společnosti, které chtějí místní přítomnost, nebo horkou zálohu, se rozhodne spouštět služby z více oblastí Azure. Je osvědčeným postupem umístit registr kontejneru do každé oblasti, kde se image budou spouštět. Díky tomu je možné provádět operace blízko sítě, což umožňuje rychlé a spolehlivé přenosy vrstvy image. Geografická replikace umožňuje službě Azure Container Registry fungovat jako jeden registr, který obsluhuje více oblastí s místními registry multi-master.
Geograficky replikovaný registr nabízí tyto výhody:
- V několika oblastech se dá použít jeden registr, obrázek a názvy značek.
- Zvýšení výkonu a spolehlivosti regionálních nasazení s přístupem k registru pro ukončení sítě
- Snížení nákladů na přenos dat pomocí vrstev imagí z místního, replikovaného registru ve stejné nebo blízké oblasti jako hostitele kontejneru
- Jedna správa registru mezi různými oblastmi
- Odolnost registru, pokud dojde k oblastnímu výpadku
Poznámka
- Pokud potřebujete zachovat kopie imagí kontejneru ve více než jednom registru kontejneru Azure, Azure Container Registry také podporuje Import obrázků. například v pracovním postupu DevOps můžete importovat image z registru pro vývoj do produkčního registru, aniž byste museli používat příkazy docker.
- Pokud chcete přesunout registr do jiné oblasti Azure místo geografické replikace registru, přečtěte si téma Ruční přesunutí registru kontejneru do jiné oblasti.
Příklad případu použití
Společnost Contoso spouští web veřejné přítomnosti, který se nachází v USA, Kanadě a Evropě. V rámci poskytování těchto trhů s obsahem místního a síťového zavírání spustí contoso clustery Azure Kubernetes Service (AKS) v Západní USA, východní USA, Kanadě Central a západní Evropa. Webová aplikace, která je nasazena jako dokovací image, využívá stejný kód a obrázek napříč všemi oblastmi. Obsah, který je místní k této oblasti, se načte z databáze, která je v každé oblasti zřízená jednoznačně. Každé místní nasazení má svou jedinečnou konfiguraci pro prostředky, jako je místní databáze.
Vývojový tým se nachází v Seattlu WA, který využívá Západní USA datové centrum.

Doručování do více registrů
Před použitím funkcí geografické replikace měl společnost Contoso v Západní USA registr založený na USA, s dalším registrem v Západní Evropa. Pro obsluhu těchto různých oblastí vývojový tým odeslal obrázky do dvou různých registrů.
docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

Přijímání z více registrů
Mezi obvyklé výzvy k více registrům patří:
- Centrální clustery Východní USA, Západní USA a Kanada vyžádají z registru Západní USA a vyžádají si výstupní poplatky, protože každý z těchto vzdálených kontejnerů přebírá obrázky z Západní USA datových center.
- Vývojový tým musí vkládat obrázky do Západní USA a Západní Evropa Registry.
- Vývojový tým musí nakonfigurovat a spravovat každé místní nasazení s názvy imagí, které odkazují na místní registr.
- Pro každou oblast je nutné nakonfigurovat přístup k registru.
Výhody geografické replikace

Pomocí funkce geografické replikace Azure Container Registry jsou tyto výhody realizované:
- Správa jednoho registru ve všech oblastech:
contoso.azurecr.io - Spravujte jednu konfiguraci nasazení imagí, protože všechny oblasti používají stejnou adresu URL obrázku:
contoso.azurecr.io/public/products/web:1.2 - Doručovat do jednoho registru, zatímco ACR automaticky spravuje geografickou replikaci. ACR replikuje jenom jedinečné vrstvy, což snižuje přenos dat napříč oblastmi.
- Nakonfigurujte místní Webhooky , aby vás upozornily na události v konkrétních replikách.
- Poskytněte vysoce dostupný registr, který je odolný vůči výpadkům v oblasti regionu.
Azure Container Registry taky podporuje zóny dostupnosti pro vytvoření odolného a vysoce dostupného registru kontejnerů Azure v oblasti Azure. Kombinace zón dostupnosti pro redundanci v rámci jedné oblasti a geografická replikace napříč několika oblastmi zvyšuje spolehlivost a výkon registru.
Konfigurace geografické replikace
Konfigurace geografické replikace je stejně jednoduchá jako při kliknutí na oblasti na mapě. Můžete také spravovat geografickou replikaci pomocí nástrojů, včetně příkazů AZ ACR Replication v rozhraní příkazového řádku Azure CLI, nebo nasadit registr s povolenou geografickou replikaci pomocí šablony Azure Resource Manager.
geografická replikace je funkce Premium registry. pokud registr ještě není Premium, můžete v Azure Portalzměnit ze základních a standardních na Premium:

pokud chcete nakonfigurovat geografickou replikaci pro registr Premium, přihlaste se k Azure Portal na adrese https://portal.azure.com .
Přejděte do Azure Container Registry a vyberte replikace:

Zobrazí se mapa zobrazující všechny aktuální oblasti Azure:

- Modré šestiúhelníky reprezentují aktuální repliky.
- Zelené šestiúhelníky reprezentují možné oblasti repliky.
- Šedé šestiúhelníky reprezentují oblasti Azure, které ještě nejsou k dispozici pro replikaci.
Pokud chcete repliku nakonfigurovat, vyberte zelený šestiúhelník a pak vyberte vytvořit:

Pokud chcete nakonfigurovat další repliky, vyberte zelené šestiúhelníky pro ostatní oblasti a pak klikněte na vytvořit.
ACR zahájí synchronizaci imagí napříč nakonfigurovanými replikami. Po dokončení se portál odráží jako připravený. Stav repliky na portálu se neaktualizuje automaticky. Aktualizovaný stav zobrazíte pomocí tlačítka aktualizovat.
Předpoklady pro použití geograficky replikovaného registru
- Každá oblast v geograficky replikovaném registru je po nastavení nezávislá. Azure Container Registry SLA platí pro každou geograficky replikovanou oblast.
- když nahrajete nebo vyžádáte obrázky z geograficky replikovaného registru, Azure Traffic Manager na pozadí pošle požadavek do registru v oblasti, která je nejblíže vaší latencí v síti.
- Po nahrání obrázku nebo aktualizace značky do nejbližší oblasti trvá Azure Container Registry pro replikaci manifestů a vrstev do zbývajících oblastí, do kterých jste se přihlásili. Větším imagí trvá replikace déle než menší. Image a značky jsou synchronizované v rámci replikačních oblastí s konečným modelem konzistence.
- Chcete-li spravovat pracovní postupy, které jsou závislé na nabízených aktualizacích do geograficky replikovaného registru, doporučujeme nakonfigurovat Webhooky , aby reagovaly na nabízené události. Můžete nastavit regionální Webhooky v rámci geograficky replikovaného registru a sledovat tak nabízené události, které se dokončí napříč geograficky replikovanými oblastmi.
- Pro poskytování objektů blob, které představují vrstvy obsahu, Azure Container Registry používá koncové body dat. V každé z geograficky replikovaných oblastí v registru můžete povolit vyhrazené koncové body dat pro váš registr. Tyto koncové body umožňují konfiguraci přísně vymezených pravidel přístupu brány firewall. Pro účely řešení potíží můžete volitelně zakázat směrování na replikaci při zachování replikovaných dat.
- Pokud nakonfigurujete privátní odkaz pro váš registr pomocí privátních koncových bodů ve virtuální síti, budou ve výchozím nastavení povoleny vyhrazené koncové body dat v každé z geograficky replikovaných oblastí.
Předpoklady pro vysokou dostupnost
- V případě vysoké dostupnosti a odolnosti doporučujeme vytvořit registr v oblasti, která podporuje povolení redundance zóny. Doporučuje se taky povolit redundanci zóny v každé oblasti repliky.
- Pokud v domovské oblasti registru dojde k výpadku (oblast, ve které byla vytvořena), nebo jedna z jejích oblastí repliky, zůstane geograficky replikovaný registr k dispozici pro operace roviny dat, jako je například doručování nebo nahlašování imagí kontejneru.
- Pokud je domovská oblast registru nedostupná, možná nebudete moci provádět operace správy registru, včetně konfigurace síťových pravidel, povolení zón dostupnosti a správy replik.
- Pokud chcete naplánovat vysokou dostupnost geograficky replikovaného registru s klíčem spravovaným zákazníkem , který je uložený v trezoru klíčů Azure, Projděte si pokyny pro převzetí služeb při selhání a redundanciklíčů v trezoru klíčů.
Odstranění repliky
Jakmile nakonfigurujete repliku pro svůj registr, můžete ji kdykoli odstranit, pokud už ji nepotřebujete. Odstraňte repliku pomocí Azure Portal nebo jiných nástrojů, jako je příkaz AZ ACR Replication Delete v rozhraní příkazového řádku Azure CLI.
Odstranění repliky v Azure Portal:
- Přejděte do Azure Container Registry a vyberte replikace.
- Vyberte název repliky a vyberte Odstranit. Potvrďte, že chcete repliku odstranit.
Použití rozhraní příkazového řádku Azure k odstranění repliky myregistry v oblasti východní USA:
az acr replication delete --name eastus --registry myregistry
Ceny geografické replikace
geografická replikace je funkce Premium úrovně služby Azure Container Registry. při replikaci registru do požadovaných oblastí se vám za každou oblast účtují Premium poplatky za registr.
V předchozím příkladu společnost Contoso konsoliduje dvě Registry dolů na jednu a přidávají repliky do Východní USA, Kanady Central a Západní Evropa. společnost Contoso by platila čtyřikrát Premium měsíčně, a to bez další konfigurace nebo správy. Každá oblast teď znovu načte své image a zlepší výkon, spolehlivost bez poplatků za přenos ze sítě z Západní USA do Kanady a Východní USA.
Řešení potíží s operacemi nabízených oznámení pomocí geograficky replikovaných registrů
Klient Dockeru, který nasaže image do geograficky replikovaného registru, nemusí do jedné replikované oblasti nasaovat všechny vrstvy i image a její manifest. K tomu může dojít, Azure Traffic Manager požadavky registru směruje do replikovaných registrů nejblíže k síti. Pokud má registr dvě oblasti replikace v okolí, vrstvy image a manifest by mohly být distribuovány do dvou lokalit a operace nabízení selže při ověření manifestu. K tomuto problému dochází kvůli způsobu, jakým se název DNS registru řeší na některých hostitelích s Linuxem. K tomuto problému nedochází v Windows, která poskytuje mezipaměť DNS na straně klienta.
Pokud k tomuto problému dojde, jedním z řešení je použít mezipaměť DNS na straně klienta, například dnsmasq na hostitele s Linuxem. To pomáhá zajistit konzistentní řešení názvu registru. Pokud k nabízení do registru používáte virtuální počítač s Linuxem v Azure, podívejte se na možnosti v tématu Možnosti překladu názvů DNS pro virtuální počítače s Linuxem v Azure.
Pokud chcete optimalizovat překlad DNS na nejbližší repliku při nabízení imagí, nakonfigurujte geograficky replikovaný registr ve stejných oblastech Azure jako zdroj operací nabízení replikace nebo nejbližší oblast při práci mimo Azure.
Dočasné zakázání směrování na replikaci
Pokud chcete řešit potíže s operacemi pomocí geograficky replikovaných registrů, můžete chtít dočasně zakázat Traffic Manager na jednu nebo více replikací. Od Azure CLI verze 2.8 můžete při vytváření nebo aktualizaci --region-endpoint-enabled replikované oblasti nakonfigurovat možnost (Preview). Když nastavíte možnost replikace na , Traffic Manager docker push nebo pull requests do této oblasti nebude --region-endpoint-enabled false směrovat. Ve výchozím nastavení je směrování na všechny replikace povolené a synchronizace dat napříč všemi replikacemi probíhá bez ohledu na to, jestli je směrování povolené nebo zakázané.
Pokud chcete zakázat směrování na existující replikaci, nejprve spuštěním příkazu az acr replication list vypište replikace v registru. Potom spusťte příkaz az acr replication update a --region-endpoint-enabled false nastavte pro konkrétní replikaci. Příklad konfigurace nastavení pro replikaci westus v registru myregistry:
# Show names of existing replications
az acr replication list --registry --output table
# Disable routing to replication
az acr replication update --name westus \
--registry myregistry --resource-group MyResourceGroup \
--region-endpoint-enabled false
Obnovení směrování do replikace:
az acr replication update --name westus \
--registry myregistry --resource-group MyResourceGroup \
--region-endpoint-enabled true
Další kroky
Podívejte se na třísekurtovou sérii kurzů Geografická replikace v Azure Container Registry. Projděte si postup vytvoření geograficky replikovaných registrů, sestavení kontejneru a jeho nasazení pomocí jediného příkazu do několika instancí docker push Web Apps for Containers.