Перемещение Реестр контейнеров Azure в другой регион
В этой статье показано, как переместить Реестр контейнеров Azure ресурсы в другой регион в той же подписке клиента Active Directory.
Примечание.
Если нужно распространить идентичные образы контейнеров в нескольких регионах Azure, Реестр контейнеров Azure также поддерживает георепликацию. Путем георепликации реестра (требуется уровень служб "Премиум") можно обслуживать несколько регионов с одинаковыми именами образов и тегов из одного реестра.
Необходимые компоненты
Вы можете переместить реестр только в том же клиенте Active Directory. Это ограничение применяется к реестрам, зашифрованным и незашифрованным с помощью ключа, управляемого клиентом.
Если в исходном реестре включены зоны доступности, целевой регион также должен поддерживать зоны доступности. Дополнительные сведения о поддержке зон доступности для Реестр контейнеров Azure см. в разделе "Включение избыточности зоны" в Реестр контейнеров Azure.
Рекомендации по конечным точкам службы
Конечные точки службы виртуальной сети для Реестр контейнеров Azure ограничить доступ к указанной виртуальной сети. Конечные точки также могут ограничить доступ к списку диапазонов адресов IPv4 (интернет-протокол версии 4). Доступ любого пользователя, подключающегося к реестру из-за пределов этих источников, запрещен. Если конечные точки службы были настроены в исходном регионе для ресурса реестра, то же самое необходимо сделать в целевом. Ниже приведены действия по этому сценарию.
Для успешного восстановления реестра в целевом регионе необходимо создать виртуальную сеть и подсеть заранее. Если перемещение этих двух ресурсов выполняется с помощью средства Azure Resource Mover, конечные точки службы не будут настроены автоматически, поэтому вам потребуется предоставить конфигурацию вручную.
Во-вторых, изменения необходимо вносить в IaC Реестр контейнеров Azure. В
networkAcl
разделе в разделеvirtualNetworkRules
добавьте правило для целевой подсети. Убедитесь, чтоignoreMissingVnetServiceEndpoint
флаг имеет значение False, чтобы IaC не развертывал Реестр контейнеров Azure в случае, если конечная точка службы не настроена в целевом регионе. Это обеспечит выполнение предварительных требований в целевом регионе.
Рекомендации по частной конечной точке
Приватный канал Azure обеспечивает частное подключение из виртуальной сети к Платформа Azure как услуга (PaaS), собственные клиентом или партнерские службы Майкрософт. Приватный канал упрощает сетевую архитектуру и защищает подключение между конечными точками в Azure, устраняя уязвимость данных к общедоступному Интернету.
Для успешного отдыха ресурса в целевом регионе необходимо создать виртуальную сеть и подсеть до фактического восстановления.
Рекомендации по интеграции DNS частной конечной точки Azure
Важно правильно настроить параметры DNS для разрешения IP-адреса частной конечной точки в полное доменное имя (FQDN) строка подключения.
Возможно, существующие службы Microsoft Azure уже используют конфигурацию DNS для общедоступной конечной точки. Эту конфигурацию нужно переопределить для подключения с помощью частной конечной точки.
Сетевой интерфейс, связанный с частной конечной точкой, содержит сведения для настройки DNS. Сведения о сетевом интерфейсе содержат полное доменное имя и частные IP-адреса для ресурса приватного канала.
Чтобы настраивать параметры DNS для частных конечных точек, можно использовать следующие варианты.
- Используйте файл узла (рекомендуется только для тестирования). Для переопределения DNS можно использовать файл узла на виртуальной машине.
- Используйте частную зону DNS. Вы можете с помощью частных зон DNS переопределять разрешения DNS для частной конечной точки. Частная зона DNS может быть связана с вашей виртуальной сетью для разрешения конкретных доменов.
- Используйте DNS-сервер пересылки (необязательно). Чтобы переопределить разрешение DNS для ресурса приватного канала, можно использовать DNS-сервер пересылки. Создайте правило пересылки DNS, чтобы использовать частную зону DNS на DNS-сервере, размещенном в виртуальной сети.
Реестр контейнеров Azure необходимо настроить в целевом регионе с уровнем "Премиум".
Если доступ к реестру отключен, доступ к реестру определенными доверенными службами, включая Центр безопасности Azure, требует включения параметра сети для обхода правил сети.
Если реестр имеет утвержденную частную конечную точку и доступ к общедоступной сети отключен, репозитории и теги не могут быть перечислены за пределами виртуальной сети с помощью портал Azure, Azure CLI или других средств.
Если в случае новой реплики необходимо вручную добавить новую запись DNS для конечной точки данных в целевом регионе.
Простой
Сведения о возможных простоях см. в статье Cloud Adoption Framework для Azure: выбор метода перемещений.
Подготовить
Примечание.
Если вы хотите переместить только реестр контейнеров, который не хранит какие-либо данные клиента и должен быть перемещен в одиночку, вы можете просто развернуть реестр с помощью Bicep или JSON.
Чтобы просмотреть другие шаблоны конфигурации доступности, перейдите к разделу "Определение ресурсов" с помощью Bicep, шаблонов ARM и поставщика Terraform AzAPI
Чтобы подготовиться к перемещению с помощью миграции данных:
Создайте карту зависимостей со всеми службами Azure, используемыми реестром. Для служб, которые находятся в области перемещения, необходимо выбрать соответствующую стратегию перемещений.
Определите исходный макет сети для Реестр контейнеров Azure (ACR), например брандмауэра и сетевой изоляции.
Извлеките все необходимые образы из исходного реестра для импорта в целевой реестр. Чтобы получить изображения, выполните следующую команду:
Get-AzContainerRegistryRepository -RegistryName registry
Используйте задачи ACR для получения конфигураций службы автоматизации исходного реестра для импорта в целевой реестр.
Экспорт шаблона
В начале экспортируйте шаблон диспетчера ресурсов Resource Manager. Этот шаблон содержит параметры, описывающие реестр контейнеров. Дополнительные сведения об использовании экспортированных шаблонов см. в разделе "Использование экспортированного шаблона" из портал Azure и ссылки на шаблон.
Найдите исходный реестр на портале Azure.
В меню выберите элемент Автоматизация и элементы Экспорт шаблона>Скачать.
Найдите скачанный c портала ZIP-файл и распакуйте его в любую выбранную папку.
В ZIP-файле содержатся файлы JSON, включающие шаблон и скрипты для развертывания шаблона.
Изменение шаблона
Проверьте все свойства реестра в JSON-файле скачанного шаблона и внесите в них требуемые изменения. Сделайте как минимум следующее:
- Укажите для имени реестра параметр
defaultValue
с желаемым именем для целевого реестра. - Измените
location
так, чтобы значение указывало на регион Azure для целевого реестра.
{
"$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",
...
}
]
}
Проверьте все связанные ресурсы в скачанном шаблоне, например карты области реестра, конфигурацию репликации, параметры диагностики, такие как log analytics.
Если исходный реестр зашифрован, зашифруйте целевой реестр с помощью ключа, управляемого клиентом, и обновите шаблон с параметрами для требуемого управляемого удостоверения, хранилища ключей и ключа. Ключ, управляемый клиентом, можно настроить только при развертывании реестра.
Создать группу ресурсов
Создайте группу ресурсов для целевого реестра с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
az group create --name myResourceGroup --location eastus
Повторное развертывание
С помощью команды az deployment group create разверните целевой реестр на основе шаблона:
az deployment group create --resource-group myResourceGroup \
--template-file template.json --name mydeployment
Примечание.
Если при развертывании вы увидите ошибки, попробуйте изменить конфигурацию в файле шаблона и заново выполнить эту команду.
Импорт содержимого реестра в целевой реестр
После создания реестра в целевом регионе:
Используйте команду az acr import или эквивалентную команду
Import-AzContainerImage
PowerShell, чтобы импортировать образы и другие артефакты, которые вы хотите сохранить из исходного реестра в целевой реестр. Примеры таких команд см. в статье Импорт образов контейнеров в реестр контейнеров.Выполните команды Azure CLI az acr repository list и az acr repository show-tags или эквивалентные команды Azure PowerShell, чтобы получить список содержимого исходного реестра.
Выполните команды импорта для отдельных артефактов или скрипт для прохождения по списку артефактов.
В следующем примере сценария для Azure CLI перечисляются репозитории и теги в исходном реестре, а затем эти артефакты импортируются в целевой реестр в той же подписке Azure. Измените его, если для ваших репозиториев и тегов требуются другие действия. Чтобы выполнить импорт из реестра в другой подписке или клиенте, см. примеры в статье Импорт образов контейнеров в реестр контейнеров.
#!/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
Свяжите зависимые ресурсы с целевым Реестр контейнеров Azure, например рабочей областью Log Analytics в параметрах диагностики.
Настройте интеграцию Реестр контейнеров Azure с обоими типами кластеров AKS, подготовленной или еще подготовленной, выполнив следующую команду:
Set-AzAksCluster -Name myAKSCluster -ResourceGroupName myResourceGroup -AcrNameToAttach <acr-name>
Внесите необходимые изменения в файл манифеста Kubernetes для интеграции с перенесенными Реестр контейнеров Azure (ACR).
Измените системы разработки и развертывания так, чтобы они использовали целевой реестр вместо исходного реестра.
Измените правила брандмауэра на клиентах, чтобы разрешить доступ к целевому реестру.
Проверка
Убедитесь, что в целевом реестре присутствует следующая информация:
- параметры реестра: имя, уровень служб, открытый доступ и репликации;
- репозитории и теги для того содержимого, которое вы хотите сохранить.
Удаление исходного реестра
Когда вы успешно завершите развертывание целевого реестра, перенос содержимого и проверку параметров, исходный реестр можно удалить.
Связанный контент
- Чтобы переместить ресурсы реестра в новую группу ресурсов в той же подписке или [новой подписке], см. статью "Перемещение ресурсов Azure в новую группу ресурсов или подписку".
Получите дополнительные сведения об импорте образов контейнеров в Реестр контейнеров Azure из общедоступного реестра или другого частного реестра.
Воспользуйтесь справочником по шаблонам Resource Manager для Реестра контейнеров Azure.