Geografická replikace ve službě Azure Container Registry

Společnosti, které chtějí místní přítomnost nebo horké zálohování, 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 více primárními regionálními registry.

Geograficky replikovaný registr nabízí tyto výhody:

  • Názvy jednotlivý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 zavřením sítě
  • Snížení nákladů na přenos dat vyžádáním vrstev image 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 udržovat 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 vývojového registru 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 kontejneru do jiné oblasti.

Požadavky

  • Uživatel k vytváření nebo odstraňování replikací vyžaduje následující oprávnění (na úrovni registru):

    Oprávnění Popis
    Microsoft.ContainerRegistry/registry/write Vytvoření replikace
    Microsoft.ContainerRegistry/registry/replications/write Odstranění replikace

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

Společnost Contoso provozuje web veřejného stavu, který se nachází v USA, Kanadě a Evropě. Aby společnost Contoso sloužila těmto trhům s místním obsahem a obsahem blízko sítě, 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 pro prostředky, jako je místní databáze.

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

Nasdílením změn do více registrů
Nasdílením změn do více registrů

Před použitím funkcí geografické replikace měla společnost Contoso registr založený na USA – západ s dalším registrem v oblasti Západní Evropa. Aby vývojový tým tyto různé oblasti sloužil, nasdílel image dvěma různým registrům.

docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

Načítání z více registrů
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 stahují z registru USA – západ, přičemž 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í odesílat image 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ích na místní registr.
  • Pro každou oblast musí být nakonfigurovaný přístup k registru.

Výhody geografické replikace

Vyžádání z geograficky replikovaného registru

Funkce geografické replikace služby Azure Container Registry má následující výhody:

  • Správa jednoho registru ve všech oblastech: contoso.azurecr.io
  • Správa jedné konfigurace nasazení imagí jako všechny oblasti používá stejnou adresu URL image: 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 mezi 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 oblastním výpadkům.

Azure Container Registry také podporuje zóny dostupnosti k vytvoření odolného a vysoce dostupného registru 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 s povolenou geografickou replikací pomocí šablony Azure Resource Manageru.

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

Přepínání úrovní služby na webu Azure Portal

Pokud chcete nakonfigurovat geografickou replikaci registru Premium, přihlaste se k webu Azure Portal.

Přejděte do služby Azure Container Registry a vyberte Replikace:

Replikace v uživatelském rozhraní registru kontejnerů na webu Azure Portal

Zobrazí se mapa se všemi aktuálními oblastmi Azure:

Mapa oblastí na webu Azure Portal

  • Modré šestiúhelníky 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 zelený šestiúhelník a pak vyberte Vytvořit:

Vytvoření replikace v uživatelském rozhraní na webu Azure Portal

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

ACR začne synchronizovat image mezi nakonfigurované repliky. Po dokončení portálu se odráží připraveno. Stav repliky na portálu se neaktualizuje automaticky. Pomocí tlačítka Aktualizovat zobrazíte 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á. Smlouvy SLA služby Azure Container Registry se vztahují na každou geograficky replikovanou oblast.
  • Pro každou operaci nabízené nebo vyžádané image v geograficky replikovaném registru odešle Azure Traffic Manager na pozadí požadavek do nejbližšího umístění registru v oblasti, aby se zachovala latence sítě.
  • Po odeslání bitové kopie nebo aktualizace značky do nejbližší oblasti trvá nějakou dobu, než Azure Container Registry replikuje manifesty a vrstvy do zbývajících oblastí, do kterých jste se přihlásili. Replikace větších bitových kopií trvá déle než u menších. Bitové kopie a značky se synchronizují napříč oblastmi replikace s modelem, který je ve výsledku konzistentní.
  • 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. Místní webhooky v geograficky replikovaném registru můžete nastavit tak, aby sledovaly události nabízených oznámení během jejich 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 pro registr můžete povolit v každé geograficky replikované oblasti vašeho 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 zachování 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 vyhrazené koncové body dat v každé geograficky replikované oblasti povolené.

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. Doporučuje se také povolit redundanci zón v každé oblasti repliky.
  • Pokud dojde k výpadku v domovské oblasti registru (oblasti, 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 registru, můžete ji kdykoli odstranit, pokud už ji nepotřebujete. Odstraňte repliku pomocí webu Azure Portal nebo jiných nástrojů, jako je příkaz az acr replication delete v Azure CLI.

Odstranění repliky na webu Azure Portal:

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

Použití Azure CLI k odstranění repliky myregistry v oblasti USA – východ:

az acr replication delete --name eastus --registry myregistry

Ceny geografické replikace

Geografická replikace je funkce úrovně služby Premium služby Azure Container Registry. Při replikaci registru do požadovaných oblastí se účtují poplatky za registr Premium pro každou oblast.

V předchozím příkladu společnost Contoso konsolidovala dva registry až na jeden a přidala repliky do oblasti 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á image místně, vylepšuje výkon a 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ý odešle 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 replikovaného registru nejbližší sítě. Pokud má registr dvě oblasti replikace, můžou se vrstvy imagí a manifest 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 analyzován na některých hostitelích se systémem Linux. K tomuto problému nedochází v systému 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 hostiteli se systémem Linux. To pomáhá zajistit, aby se název registru analyzoval konzistentně. Pokud k nasdílení změn do registru používáte virtuální počítač s Linuxem v Azure, prohlédni si možnosti v možnostech překladu názvů DNS pro virtuální počítače s Linuxem v Azure.

Pokud chcete optimalizovat analýzu DNS na nejbližší repliku při odesílání bitových kopií, nakonfigurujte geograficky replikovaný registr na stejné oblasti Azure jako zdroj operací odesílání 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 s geograficky replikovaným registrem, možná budete chtít dočasně zakázat směrování Traffic Manageru do jedné 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ž nebude směrovat docker push ani žádosti o přijetí změn do této oblasti. Ve výchozím nastavení je směrování do všech replikací 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 spusťte příkaz az acr replication list a vypíšete replikace v registru. Pak spusťte az acr replication update a nastavte --region-endpoint-enabled false pro 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í na replikaci:

az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled true

Vytvoření replikace pro registr s aktivním privátním koncovým bodem

Při vytváření nové replikace registru pro primární registr s povoleným privátním koncovým bodem doporučujeme ověřit, že identita uživatele má platná oprávnění k vytvoření privátního koncového bodu. Jinak se operace při vytváření replikace zablokuje ve stavu zřizování.

Pokud jste se při vytváření replikace registru zasekli ve stavu zřizování, postupujte podle následujících kroků:

  • Ručně odstraňte replikaci, která se zasekla ve stavu zřizování.
  • Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write Přidejte oprávnění pro identitu uživatele.
  • Znovu vytvořte požadavek na replikaci registru.

Tato kontrola oprávnění se vztahuje pouze na registry s povoleným privátním koncovým bodem.

Další kroky

Podívejte se na třídílnou sérii kurzů o geografické replikaci ve službě Azure Container Registry. Projděte si vytvoření geograficky replikovaného registru, sestavení kontejneru a jeho následné nasazení pomocí jednoho docker push příkazu do několika instancí služby Web Apps for Containers.