Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak przenieść zasoby usługi Azure Container Registry do innego regionu w tej samej subskrypcji dzierżawy usługi Active Directory.
Uwaga / Notatka
Jeśli musisz dystrybuować identyczne obrazy kontenerów w wielu regionach świadczenia usługi Azure, usługa Azure Container Registry obsługuje również replikację geograficzną. Dzięki replikacji geograficznej rejestru (wymagana warstwa usługi Premium) można obsługiwać wiele regionów z identycznymi nazwami obrazów i tagów z jednego rejestru.
Wymagania wstępne
- Rejestr można przenieść tylko w ramach tej samej dzierżawy usługi Active Directory. To ograniczenie dotyczy rejestrów, które są szyfrowane i niezaszyfrowane przy użyciu klucza zarządzanego przez klienta.
- Jeśli rejestr źródłowy ma włączone strefy dostępności, region docelowy musi również obsługiwać strefy dostępności. Aby uzyskać więcej informacji na temat obsługi strefy dostępności dla usługi Azure Container Registry, zobacz Włączanie nadmiarowości stref w usłudze Azure Container Registry.
Zagadnienia dotyczące punktów końcowych usługi
Punkty końcowe usługi sieci wirtualnej dla usługi Azure Container Registry ograniczają dostęp do określonej sieci wirtualnej. Punkty końcowe mogą także ograniczyć dostęp do listy zakresów adresów IPv4 (internet protocol version 4). Każdy użytkownik nawiązujący połączenie z rejestrem spoza tych źródeł nie ma dostępu. Jeśli punkty końcowe usługi zostały skonfigurowane w regionie źródłowym dla zasobu rejestru, należy to zrobić w tym samym miejscu docelowym. Kroki dla tego scenariusza to:
- Aby pomyślnie odtworzyć rejestr w regionie docelowym, należy wcześniej utworzyć sieć wirtualną i podsieć. Jeśli przeniesienie tych dwóch zasobów odbywa się za pomocą narzędzia Azure Resource Mover, punkty końcowe usługi nie mogą być konfigurowane automatycznie i dlatego należy zapewnić ręczną konfigurację.
- Po drugie należy wprowadzić zmiany w IaC usługi Azure Container Registry. W
networkAcl
sekcji, w obszarzevirtualNetworkRules
, dodaj regułę dla podsieci docelowej. Upewnij się, że flagaignoreMissingVnetServiceEndpoint
jest ustawiona na False, aby Infrastructure as Code (IaC) nie mogło wdrożyć Azure Container Registry, jeśli punkt końcowy usługi nie jest skonfigurowany w regionie docelowym. Gwarantuje to spełnienie wymagań wstępnych w regionie docelowym
Rozważania dotyczące prywatnego punktu końcowego
Usługa Azure Private Link zapewnia prywatną łączność z sieci wirtualnej do platformy Azure jako usługi (PaaS), należących do klienta lub usług partnerskich firmy Microsoft. Usługa Private Link upraszcza architekturę sieci i zabezpiecza połączenie między punktami końcowymi na platformie Azure, eliminując narażenie danych na publiczny Internet.
W celu pomyślnego odtworzenia zasobu w regionie docelowym, należy utworzyć VNet i podsieć przed rozpoczęciem rzeczywistego odtworzenia.
Zagadnienia dotyczące integracji z usługą DNS prywatnego punktu końcowego platformy Azure
Ważne jest, aby poprawnie skonfigurować ustawienia DNS, aby przetłumaczyć prywatny adres IP punktu końcowego na w pełni kwalifikowaną nazwę domeny (FQDN) ciągu połączenia.
Istniejące usługi platformy Microsoft Azure mogą już mieć konfigurację DNS dla publicznego punktu końcowego. Ta konfiguracja musi zostać zastąpiona, aby móc nawiązać połączenie przy użyciu prywatnego endpointu.
Interfejs sieciowy skojarzony z prywatnym punktem końcowym zawiera informacje dotyczące konfigurowania systemu DNS. Informacje o interfejsie sieciowym obejmują FQDN i prywatne adresy IP dla zasobu prywatnego łącza.
Aby skonfigurować ustawienia DNS dla prywatnych punktów końcowych, możesz skorzystać z następujących opcji:
- Użyj pliku hosts (zalecane tylko w przypadku testowania). Możesz użyć pliku hosta na maszynie wirtualnej, aby zastąpić serwer DNS.
- Użyj prywatnej strefy DNS. Za pomocą prywatnych stref DNS można zastąpić rozpoznawanie DNS dla prywatnego punktu końcowego. Prywatną strefę DNS można połączyć z siecią wirtualną w celu rozpoznawania konkretnych domen.
- Użyj usługi przekazywania DNS (opcjonalnie). Możesz użyć usługi przekazywania DNS, aby zastąpić rozpoznawanie nazw DNS dla zasobu typu prywatne łącze. Utwórz regułę przekazywania DNS, aby używać prywatnej strefy DNS na serwerze DNS hostowanym w sieci wirtualnej.
- Usługa Azure Container Registry musi być skonfigurowana w regionie docelowym z warstwą Premium.
- Gdy dostęp do sieci publicznej do rejestru jest wyłączony, dostęp do rejestru przez niektóre zaufane usługi — w tym Usługę Azure Security Center — wymaga włączenia ustawienia sieci w celu obejścia reguł sieci.
- Jeśli rejestr ma zatwierdzony prywatny punkt końcowy, a dostęp do sieci publicznej jest wyłączony, repozytoria i tagi nie mogą być wyświetlane poza siecią wirtualną przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub innych narzędzi.
- W przypadku nowej repliki konieczne jest ręczne dodanie nowego rekordu systemu nazw domen (DNS) dla punktu końcowego danych w regionie docelowym.
Przestój
Aby zrozumieć możliwe przestoje, zobacz Cloud Adoption Framework for Azure: Select a relocation method (Przewodnik Cloud Adoption Framework dla platformy Azure: wybieranie metody relokacji).
Przygotuj się
Uwaga / Notatka
Jeśli chcesz przenieść tylko rejestr kontenerów, który nie przechowuje żadnych danych specyficznych dla klienta i ma zostać przeniesiony samodzielnie, możesz ponownie wdrożyć rejestr przy użyciu formatu Bicep lub JSON.
Aby wyświetlić inne szablony konfiguracji dostępności, przejdź do sekcji Definiowanie zasobów przy użyciu dostawcy Bicep, szablonów usługi ARM i narzędzia Terraform AzAPI
Aby przygotować się do relokacji z migracją danych:
Utwórz mapę zależności ze wszystkimi usługami platformy Azure używanymi przez rejestr. W przypadku usług, które znajdują się w zakresie relokacji, należy wybrać odpowiednią strategię relokacji.
Zidentyfikuj układ sieci źródłowej dla usługi Azure Container Registry (ACR), na przykład zaporę i izolację sieci.
Pobierz wszystkie wymagane obrazy z rejestru źródłowego do zaimportowania do rejestru docelowego. Aby pobrać obrazy, uruchom następujące polecenie:
Get-AzContainerRegistryRepository -RegistryName registry
Użyj usługi ACR Tasks , aby pobrać konfiguracje automatyzacji rejestru źródłowego na potrzeby importowania do rejestru docelowego.
Szablon eksportu
Aby rozpocząć, wyeksportuj szablon usługi Resource Manager. Ten szablon zawiera ustawienia opisujące rejestr kontenerów. Aby uzyskać więcej informacji na temat używania wyeksportowanych szablonów, zobacz Używanie wyeksportowanego szablonu z witryny Azure Portal i dokumentacji szablonu.
W witrynie Azure Portal przejdź do rejestru źródłowego.
W menu w obszarze Automatyzacja wybierz pozycję Eksportuj szablon>Pobierz.
Zlokalizuj plik .zip, który pobrałeś z portalu, a następnie rozpakuj go do wybranego przez siebie folderu.
Ten plik zip zawiera pliki .json, które zawierają szablon oraz skrypty do wdrożenia tego szablonu.
Zmień szablon
Sprawdź właściwości rejestru w pobranym pliku JSON szablonu i wprowadź niezbędne zmiany. Co najmniej:
Zmień nazwę
defaultValue
rejestru na żądaną nazwę rejestru docelowegoZaktualizuj element
location
do żądanego regionu platformy Azure dla rejestru docelowego{ "$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", ... } ] }
Zweryfikuj wszystkie skojarzone zasoby szczegółowe w pobranym szablonie, takie jak zakres rejestruMapy, konfiguracja replikacji, ustawienia diagnostyczne, takie jak analiza dzienników.
Jeśli rejestr źródłowy jest zaszyfrowany, zaszyfruj rejestr docelowy przy użyciu klucza zarządzanego przez klienta i zaktualizuj szablon przy użyciu ustawień wymaganej tożsamości zarządzanej, magazynu kluczy i klucza. Klucz zarządzany przez klienta można włączyć tylko podczas wdrażania rejestru.
Utwórz grupę zasobów
Utwórz grupę zasobów dla rejestru docelowego przy użyciu polecenia az group create. W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.
az group create --name myResourceGroup --location eastus
Ponownie wdroż
Użyj polecenia az deployment group create, aby wdrożyć rejestr docelowy przy użyciu szablonu:
az deployment group create \
--name mydeployment \
--resource-group myResourceGroup \
--template-file template.json
Uwaga / Notatka
Jeśli podczas wdrażania wystąpią błędy, może być konieczne zaktualizowanie niektórych konfiguracji w pliku szablonu i ponowienie próby wykonania polecenia.
Importowanie zawartości rejestru do rejestru docelowego
Po utworzeniu rejestru w regionie docelowym:
Użyj polecenia az acr import lub równoważnego polecenia
Import-AzContainerImage
programu PowerShell, aby zaimportować obrazy i inne artefakty, które mają zostać zachowane z rejestru źródłowego do rejestru docelowego. Przykłady poleceń można znaleźć w temacie Importowanie obrazów kontenerów do rejestru kontenerów.Użyj poleceń CLI platformy Azure az acr repository list i az acr repository show-tags lub ich odpowiedników w programie Azure PowerShell, żeby pomóc w wyliczaniu zawartości rejestru źródłowego.
Uruchom polecenie importu dla poszczególnych artefaktów lub utwórz skrypt, aby uruchomić listę artefaktów.
Poniższy przykładowy skrypt interfejsu wiersza polecenia platformy Azure wylicza repozytoria źródłowe i tagi, a następnie importuje artefakty do rejestru docelowego w tej samej subskrypcji platformy Azure. Zmodyfikuj zgodnie z potrzebami, aby zaimportować określone repozytoria lub tagi. Aby zaimportować z rejestru w innej subskrypcji lub dzierżawie, zapoznaj się z przykładami w Importowanie obrazów kontenerów do rejestru kontenerów.
#!/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
Skojarz zasoby zależne z docelową usługą Azure Container Registry, taką jak obszar roboczy usługi Log Analytics w ustawieniach diagnostycznych.
Skonfiguruj integrację usługi Azure Container Registry z obydwoma typami klastrów usługi AKS, skonfigurowaną lub jeszcze nie skonfigurowaną, uruchamiając następujące polecenie:
Set-AzAksCluster -Name myAKSCluster -ResourceGroupName myResourceGroup -AcrNameToAttach <acr-name>
Wprowadź niezbędne zmiany w pliku manifestu kubernetes, aby zintegrować je z przeniesioną usługą Azure Container Registry (ACR).
Aktualizowanie systemów programowania i wdrażania w celu używania rejestru docelowego zamiast rejestru źródłowego.
Zaktualizuj wszystkie reguły zapory klienta, aby zezwolić na dostęp do rejestru docelowego.
Weryfikacja
Potwierdź następujące informacje w rejestrze docelowym:
- Ustawienia rejestru, takie jak nazwa rejestru, warstwa usługi, dostęp publiczny i replikacje
- Repozytoria i tagi zawartości, którą chcesz zachować.
Usuwanie oryginalnego rejestru
Po wdrożeniu rejestru docelowego oraz po pomyślnym przeniesieniu zawartości i zweryfikowaniu ustawień rejestru, można usunąć rejestr źródłowy.
Powiązana treść
- Aby przenieść zasoby rejestru do nowej grupy zasobów w tej samej subskrypcji lub [nowej subskrypcji], zobacz Przenoszenie zasobów platformy Azure do nowej grupy zasobów lub subskrypcji.
- Dowiedz się więcej na temat importowania obrazów kontenerów do rejestru kontenerów platformy Azure z rejestru publicznego lub innego rejestru prywatnego.
- Zobacz odniesienie do szablonu Resource Manager dla Azure Container Registry.