Geografická replikace v Azure Container Registry

Společnosti, které chtějí místní přítomnost nebo horkou zálohu, se rozhodnou spouštět služby z několika 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:

  • Názvy jednoúčelových registrů, imagí a značek je možné použít v několika oblastech.
  • Zvýšení výkonu a spolehlivosti regionálních nasazení s využitím přístupu k registru blízko sítě
  • Snížení nákladů na přenos dat vyžádáním vrstev imagí z místního, replikovaného registru ve stejné nebo blízké oblasti jako hostitel kontejneru
  • Jedna správa registru mezi různými oblastmi
  • Odolnost registru, pokud dojde k regionálnímu výpadku

Poznámka

  • Pokud potřebujete zachovat kopie imagí kontejnerů ve více než jednom registru kontejnerů Azure, Azure Container Registry také podporuje import imagí. Například v pracovním postupu DevOps můžete importovat image z registru vývoje do produkčního registru, aniž byste museli používat příkazy Dockeru.
  • Pokud chcete přesunout registr do jiné oblasti Azure místo geografické replikace registru, přečtěte si téma Ruční přesun registru do jiné oblasti.

Příklad případu použití

Společnost Contoso provozuje veřejný web o stavu, který se nachází v USA, Kanadě a Evropě. Pro poskytování těchto trhů s místním a síťovým obsahem společnost Contoso provozuje clustery Azure Kubernetes Service (AKS) v oblasti USA – západ, USA – východ, Kanada – střed a Západní Evropa. Webová aplikace nasazená jako image Dockeru využívá stejný kód a image ve všech oblastech. Obsah, místní pro danou oblast, se načte z databáze, která je zřízena jedinečně v každé oblasti. Každé místní nasazení má jedinečnou konfiguraci prostředků, jako je místní databáze.

Vývojový tým se nachází v Seattlu WA, který využívá datové centrum USA – západ.

Pushing to multiple registries
Odesílání do více registrů

Před použitím funkcí geografické replikace společnost Contoso měla registr založený na USA v oblasti USA – západ s dalším registrem v oblasti Západní Evropa. Vývojový tým pro tyto různé oblasti nasdílel image 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

Pulling from multiple registries
Načítání z více registrů

Mezi typické výzvy více registrů patří:

  • Všechny clustery USA – východ, USA – západ a Kanada – střed účtují poplatky za odchozí přenos dat z registru USA – západ, protože každý z těchto vzdálených hostitelů kontejnerů načítá image z datových center USA – západ.
  • Vývojový tým musí nasdílení obrázků do registrů USA – západ a Západní Evropa.
  • Vývojový tým musí nakonfigurovat a udržovat každé místní nasazení s názvy imagí odkazujícími na místní registr.
  • Přístup k registru musí být nakonfigurovaný pro každou oblast.

Výhody geografické replikace

Pulling from a geo-replicated registry

Pomocí funkce geografické replikace Azure Container Registry jsou tyto výhody dosaženy:

  • Správa jednoho registru ve všech oblastech: contoso.azurecr.io
  • Správa jedné konfigurace nasazení imagí, protože všechny oblasti používají stejnou adresu URL obrázku: contoso.azurecr.io/public/products/web:1.2
  • Nasdílení změn do jednoho registru, zatímco ACR automaticky spravuje geografickou replikaci. ACR replikuje pouze jedinečné vrstvy a snižuje přenos dat napříč oblastmi.
  • Nakonfigurujte regionální webhooky tak, aby vás informovaly o událostech v konkrétních replikách.
  • Poskytněte vysoce dostupný registr, který je odolný vůči výpadkům oblastí.

Azure Container Registry podporuje také zóny dostupnosti, které vytvoří odolný a vysoce dostupný registr kontejnerů Azure v rámci oblasti Azure. Kombinace zón dostupnosti pro redundanci v rámci oblasti a geografická replikace napříč několika oblastmi zvyšuje spolehlivost a výkon registru.

Konfigurace geografické replikace

Konfigurace geografické replikace je stejně snadná jako kliknutí na oblasti na mapě. Geografickou replikaci můžete také spravovat pomocí nástrojů, včetně příkazů az acr replication v Azure CLI, nebo nasadit registr povolený pro geografickou replikaci pomocí šablony Azure Resource Manager.

Geografická replikace je funkce Premium registrů. Pokud váš registr ještě není Premium, můžete změnit z úrovně Basic a Standard na Premium v Azure Portal:

Switching service tiers in the Azure portal

Pokud chcete nakonfigurovat geografickou replikaci pro registr Premium, přihlaste se k Azure Portal na adrese https://portal.azure.com.

Přejděte na Azure Container Registry a vyberte Replikace:

Replications in the Azure portal container registry UI

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

Region map in the Azure portal

  • Modré šestnáctkové repliky představují aktuální repliky.
  • Zelené šestiúhelníky představují možné oblasti replik
  • Šedé šestiúhelníky představují oblasti Azure, které ještě nejsou k dispozici pro replikaci.

Pokud chcete nakonfigurovat repliku, vyberte zelenou šestnáctku a pak vyberte Vytvořit:

Create replication UI in the Azure portal

Pokud chcete nakonfigurovat další repliky, vyberte zelené šestnáctkové zóny pro jiné oblasti a potom klikněte na Vytvořit.

Služba ACR začne synchronizovat image mezi nakonfigurované repliky. Po dokončení portálu se zobrazí připraveno. Stav repliky na portálu se neaktualizuje automaticky. Pomocí tlačítka Aktualizovat zobrazte aktualizovaný stav.

Důležité informace o používání geograficky replikovaného registru

  • Každá oblast v geograficky replikovaném registru je po nastavení nezávislá. Azure Container Registry smlouvy SLA platí pro každou geograficky replikovanou oblast.
  • Když nasdílíte nebo načtete image z geograficky replikovaného registru, Azure Traffic Manager na pozadí odešle požadavek do registru umístěného v oblasti, která je vám nejblíže z hlediska latence sítě.
  • Po nasdílení aktualizace image nebo značky do nejbližší oblasti trvá nějakou dobu, než Azure Container Registry replikovat manifesty a vrstvy do zbývajících oblastí, do kterých jste se přihlásili. Replikace větších imagí trvá déle než menší. Image a značky se synchronizují napříč oblastmi replikace s modelem konečné konzistence.
  • Pokud chcete spravovat pracovní postupy, které závisí na nabízených aktualizacích geograficky replikovaného registru, doporučujeme nakonfigurovat webhooky tak, aby reagovaly na nabízené události. Regionální webhooky můžete nastavit v rámci geograficky replikovaného registru tak, aby sledovaly události nabízených oznámení po dokončení napříč geograficky replikovanými oblastmi.
  • K poskytování objektů blob představujících vrstvy obsahu Azure Container Registry používá koncové body dat. Vyhrazené datové koncové body můžete pro svůj registr povolit v každé geograficky replikované oblasti registru. Tyto koncové body umožňují konfiguraci úzce omezených pravidel přístupu k bráně firewall. Pro účely řešení potíží můžete volitelně zakázat směrování na replikaci při údržbě replikovaných dat.
  • Pokud pro registr nakonfigurujete privátní propojení pomocí privátních koncových bodů ve virtuální síti, ve výchozím nastavení jsou povolené vyhrazené koncové body dat v každé geograficky replikované oblasti.

Důležité informace o vysoké dostupnosti

  • Pro zajištění vysoké dostupnosti a odolnosti doporučujeme vytvořit registr v oblasti, která podporuje povolení redundance zón. Povolení redundance zón v každé oblasti repliky se také doporučuje.
  • Pokud dojde k výpadku v domovské oblasti registru (oblast, ve které byla vytvořena) nebo v jedné z oblastí repliky, zůstane geograficky replikovaný registr dostupný pro operace roviny dat, jako je nabízení nebo vyžádání imagí kontejneru.
  • Pokud je domovská oblast registru nedostupná, možná nebudete moct provádět operace správy registru, včetně konfigurace pravidel sítě, povolení zón dostupnosti a správy replik.
  • Pokud chcete naplánovat vysokou dostupnost geograficky replikovaného registru šifrovaného pomocí klíče spravovaného zákazníkem uloženým v trezoru klíčů Azure, projděte si pokyny k převzetí služeb při selhání a redundanci trezoru klíčů.

Odstranění repliky

Jakmile nakonfigurujete repliku pro 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 Azure CLI.

Odstranění repliky v Azure Portal:

  1. Přejděte na Azure Container Registry a vyberte Replikace.
  2. Vyberte název repliky a vyberte Odstranit. Potvrďte, že chcete repliku odstranit.

Pokud chcete pomocí Azure CLI odstranit repliku myregistry v oblasti USA – východ:

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 účtují poplatky za registr Premium pro každou oblast.

V předchozím příkladu společnost Contoso konsolidovala dva registry dolů na jeden a přidala repliky do usa – východ, Kanada – střed a Západní Evropa. Společnost Contoso by zaplatila čtyřikrát Premium měsíčně bez další konfigurace nebo správy. Každá oblast teď načítá své image místně, zlepšuje výkon, spolehlivost bez poplatků za výchozí přenos dat sítě z USA – západ do Kanady a USA – východ.

Řešení potíží s operacemi nabízení pomocí geograficky replikovaných registrů

Klient Dockeru, který nasdílí image do geograficky replikovaného registru, nemusí odesílat všechny vrstvy imagí a jeho manifest do jedné replikované oblasti. K tomu může dojít, protože Azure Traffic Manager směruje požadavky registru do nejbližšího replikovaného registru sítě. Pokud má registr dvě oblasti replikace, vrstvy i manifestu je možné distribuovat do dvou lokalit a operace nabízení selže, když se manifest ověří. K tomuto problému dochází kvůli způsobu, jakým je název DNS registru vyřešen na některých hostitelích s Linuxem. K tomuto problému dochází u Windows, což poskytuje mezipaměť DNS na straně klienta.

Pokud k tomuto problému dojde, jedním z řešení je použití mezipaměti DNS na straně klienta, jako dnsmasq je například na hostiteli Linuxu. To pomáhá zajistit, aby se název registru přeložil konzistentně. Pokud k nasdílení do registru používáte virtuální počítač s Linuxem, podívejte se na 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 odesílání imagí, nakonfigurujte geograficky replikovaný registr ve stejných oblastech Azure jako zdroj nabízených operací 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 geograficky replikovaným registrem, můžete dočasně zakázat směrování Traffic Manager na jednu nebo více replikací. Počínaje Azure CLI verze 2.8 můžete při vytváření nebo aktualizaci replikované oblasti nakonfigurovat --region-endpoint-enabled možnost (Preview). Když nastavíte možnost replikace --region-endpoint-enabled na false, Traffic Manager už do této oblasti nenasměruje docker push nebo žádosti o přijetí změn. Ve výchozím nastavení je povolené směrování na všechny replikace 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 spusťte příkaz az acr replication list a vypište replikace v registru. Pak spusťte az acr replication update a nastavte --region-endpoint-enabled false konkrétní replikaci. Pokud chcete například nakonfigurovat nastavení pro replikaci westus v 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řídílnou řadu kurzů, geografickou replikaci v Azure Container Registry. Projděte si vytvoření geograficky replikovaného registru, sestavení kontejneru a jeho nasazení pomocí jednoho docker push příkazu do několika regionálních Web Apps pro instance kontejnerů.