Георепликация в реестре контейнеров AzureGeo-replication in Azure Container Registry

Компании, которым необходимо местное присутствие или выполнять оперативное резервное копирование, запускают службы из нескольких регионов Azure.Companies that want a local presence, or a hot backup, choose to run services from multiple Azure regions. Мы советуем разместить реестр контейнеров в каждом регионе, в котором запускаются образы, чтобы выполнять операции, аналогичные сетевым, для быстрой и надежной передачи слоев образа.As a best practice, placing a container registry in each region where images are run allows network-close operations, enabling fast, reliable image layer transfers. Георепликация позволяет реестру контейнеров Azure работать в качестве отдельного реестра и обслуживать несколько регионов с несколькими региональными реестрами.Geo-replication enables an Azure container registry to function as a single registry, serving multiple regions with multi-master regional registries.

Геореплицированный реестр предоставляет следующие преимущества:A geo-replicated registry provides the following benefits:

  • отдельные имена реестра, образа и тега можно использовать в нескольких регионах;Single registry/image/tag names can be used across multiple regions
  • доступ к реестру, который находится ближе все к сети, из региональных развертываний;Network-close registry access from regional deployments
  • нет дополнительных исходящих затрат, так как образы извлекаются из локального, реплицируемого реестра в регионе, в котором расположен узел контейнера;No additional egress fees, as images are pulled from a local, replicated registry in the same region as your container host
  • единое управление реестром в нескольких регионах.Single management of a registry across multiple regions

Примечание

Если вам нужно хранить копии образов контейнеров в нескольких реестрах контейнеров Azure, Реестр контейнеров Azure также поддерживает импорт образа.If you need to maintain copies of container images in more than one Azure container registry, Azure Container Registry also supports image import. Например, в рабочем процессе DevOps вы можете импортировать образы из реестра разработки в рабочий реестр без необходимости использовать команды Docker.For example, in a DevOps workflow, you can import an image from a development registry to a production registry, without needing to use Docker commands.

Примеры использованияExample use case

Contoso запускает общедоступный веб-сайт, расположенный в США, Канаде и Европе.Contoso runs a public presence website located across the US, Canada, and Europe. Чтобы предоставить этим рынкам локальное и аналогичное сетевому содержимое, Contoso запускает Службу Azure Kubernetes (AKS) в западной части США, восточной части США, Центральной Канаде и Западной Европе.To serve these markets with local and network-close content, Contoso runs Azure Kubernetes Service (AKS) clusters in West US, East US, Canada Central, and West Europe. Веб-приложение, развернутое в качестве образа Docker, использует тот же код и образ во всех регионах.The website application, deployed as a Docker image, utilizes the same code and image across all regions. Содержимое, локальное для этого региона, извлекается из базы данных, которая уникально подготавливается в каждом регионе.Content, local to that region, is retrieved from a database, which is provisioned uniquely in each region. Каждое региональное развертывание имеет свою уникальную конфигурацию для ресурсов, например, для локальной базы данных.Each regional deployment has its unique configuration for resources like the local database.

Команда разработчиков находится в Сиэтле, штат Вашингтон, и использует центр обработки данных в западной части США.The development team is located in Seattle WA, utilizing the West US data center.

Отправка в несколько реестровPushing to multiple registries
Отправка в несколько реестровPushing to multiple registries

Перед использованием функций георепликации Contoso использовал в западной части США реестр, который размещается в США, а также дополнительный реестр в Западной Европе.Prior to using the geo-replication features, Contoso had a US-based registry in West US, with an additional registry in West Europe. Для обслуживания этих разных регионов команда разработчиков отправила образы в два разных реестра.To serve these different regions, the development team pushed images to two different registries.

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

Извлечение из нескольких реестровPulling from multiple registries
Извлечение из нескольких реестровPulling from multiple registries

К типичным сложностям нескольких реестров относятся:Typical challenges of multiple registries include:

  • Все кластеры восточной части США, западной части США и Центральной Канады извлекаются из реестра в западной части США. При этом взимается дополнительная исходящая плата, так как каждый из этих удаленных узлов контейнера извлекает образ из центров обработки данных в западной части США.The East US, West US, and Canada Central clusters all pull from the West US registry, incurring egress fees as each of these remote container hosts pull images from West US data centers.
  • Команда разработчиков должна отправлять образы в реестры в западной части США и Западной Европе.The development team must push images to West US and West Europe registries.
  • Команде разработчиков необходимо настроить и поддерживать каждое региональное развертывание с именами образов, ссылающихся на локальный реестр.The development team must configure and maintain each regional deployment with image names referencing the local registry.
  • Для каждого региона, необходимо настроить доступ к реестру.Registry access must be configured for each region.

Преимущества георепликацииBenefits of geo-replication

Извлечение из геореплицированного реестра

С помощью функции георепликации реестра контейнеров Azure можно реализовать следующие преимущества:Using the geo-replication feature of Azure Container Registry, these benefits are realized:

  • Управление одним реестром во всех регионах: contoso.azurecr.io.Manage a single registry across all regions: contoso.azurecr.io
  • Управление одной конфигурацией развертываний образов, так как все регионы использовали одинаковый URL-адрес образа: contoso.azurecr.io/public/products/web:1.2.Manage a single configuration of image deployments as all regions used the same image URL: contoso.azurecr.io/public/products/web:1.2
  • Отправляйте данные в отдельный реестр, а ACR будет управлять георепликацией.Push to a single registry, while ACR manages the geo-replication. Можно настроить региональные веб-перехватчики, чтобы получать уведомления о событиях в определенных репликах.You can configure regional webhooks to notify you of events in specific replicas.

Настройка георепликацииConfigure geo-replication

Настроить георепликацию так же просто, как и выбрать регионы на карте.Configuring geo-replication is as easy as clicking regions on a map. Можно также управлять георепликацией с помощью средств, включая команды AZ запись контроля доступа в Azure CLI, или развернуть реестр, включенный для георепликации с шаблоном Azure Resource Manager.You can also manage geo-replication using tools including the az acr replication commands in the Azure CLI, or deploy a registry enabled for geo-replication with an Azure Resource Manager template.

Георепликация — это функция реестров только уровня "Премиум".Geo-replication is a feature of Premium registries only. Вы можете изменить уровень "Базовый" или "Стандартный" на "Премиум" (если у вас его еще нет) на портале Azure.If your registry isn't yet Premium, you can change from Basic and Standard to Premium in the Azure portal:

Переключение SKU на портале Azure

Чтобы настроить георепликацию для реестра уровня "Премиум", войдите на портал Azure по адресу https://portal.azure.com.To configure geo-replication for your Premium registry, log in to the Azure portal at https://portal.azure.com.

Перейдите к реестру контейнеров Azure и выберите Replications (Репликации).Navigate to your Azure Container Registry, and select Replications:

Репликации в реестре контейнера пользовательского интерфейса на портале Azure

Отобразится карта со всеми текущими регионами Azure:A map is displayed showing all current Azure Regions:

Карта регионов на портале Azure

  • синие шестиугольники отображают текущие реплики;Blue hexagons represent current replicas
  • зеленые шестиугольники отображают возможные регионы реплик;Green hexagons represent possible replica regions
  • серые шестиугольники отображают регионы Azure, которые еще недоступны для репликации.Gray hexagons represent Azure regions not yet available for replication

Чтобы настроить реплику, выберите зеленый шестиугольник, а затем нажмите кнопку Создать.To configure a replica, select a green hexagon, then select Create:

Создание пользовательского интерфейса репликации на портале Azure

Чтобы настроить дополнительные реплики, выберите зеленые шестиугольники для других регионов, а затем нажмите кнопку Создать.To configure additional replicas, select the green hexagons for other regions, then click Create.

ACR начинает синхронизацию образов между настроенными репликами.ACR begins syncing images across the configured replicas. После завершения на портале отобразится состояние Готово.Once complete, the portal reflects Ready. Состояние реплики на портале не обновляется автоматически.The replica status in the portal doesn't automatically update. Нажмите кнопку "Обновить", чтобы просмотреть обновленное состояние.Use the refresh button to see the updated status.

Рекомендации по использованию геореплицированного реестраConsiderations for using a geo-replicated registry

  • Каждый регион в геореплицированном реестре является независимым после настройки.Each region in a geo-replicated registry is independent once set up. Соглашения об уровне обслуживания Реестра контейнеров Azure применяются к каждому геореплицированному региону.Azure Container Registry SLAs apply to each geo-replicated region.
  • При отправке образов в геореплицированный реестр или извлечении их из него диспетчер трафика Azure в фоновом режиме отправляет запрос в реестр, расположенный в ближайшем к вам регионе.When you push or pull images from a geo-replicated registry, Azure Traffic Manager in the background sends the request to the registry located in the region closest to you.
  • После отправки образа или тега обновления в ближайший регион потребуется некоторое время, чтобы Реестр контейнеров Azure реплицировал манифесты и слои в остальные регионы, которые вы выбрали.After you push an image or tag update to the closest region, it takes some time for Azure Container Registry to replicate the manifests and layers to the remaining regions you opted into. Чем больше образ, тем дольше он реплицируется.Larger images take longer to replicate than smaller ones. Образы и теги синхронизируются во всех регионах репликации в соответствии с моделью итоговой согласованности.Images and tags are synchronized across the replication regions with an eventual consistency model.
  • Для управления рабочими процессами, которые зависят от обновлений для геореплицированной репликации, рекомендуется настроить веб-перехватчики для реагирования на события push-уведомлений.To manage workflows that depend on push updates to a geo-replicated , we recommend that you configure webhooks to respond to the push events. Можно настроить региональные веб-перехватчики в геореплицированном реестре, чтобы отслеживать выполнение событий отправки во всех геореплицированных регионах.You can set up regional webhooks within a geo-replicated registry to track push events as they complete across the geo-replicated regions.

Удаление репликиDelete a replica

После настройки реплики для реестра ее можно удалить в любое время, если она больше не нужна.After you've configured a replica for your registry, you can delete it at any time if it's no longer needed. Удалите реплику с помощью портал Azure или других средств, таких как AZ запись контроля доступа Delete в Azure CLI.Delete a replica using the Azure portal or other tools such as the az acr replication delete command in the Azure CLI.

Чтобы удалить реплику в портал Azure, выполните следующие действия.To delete a replica in the Azure portal:

  1. Перейдите к реестру контейнеров Azure и выберите репликация.Navigate to your Azure Container Registry, and select Replications.
  2. Выберите имя реплики и нажмите кнопку Удалить.Select the name of a replica, and select Delete. Подтвердите, что вы хотите удалить реплику.Confirm that you want to delete the replica.

Примечание

Вы не можете удалить реплику реестра в основном регионе реестра, то есть в том месте, где был создан реестр.You can't delete the registry replica in the home region of the registry, that is, the location where you created the registry. Удалить реплику Home можно только путем удаления самого реестра.You can only delete the home replica by deleting the registry itself.

Расходы, связанные с георепликациейGeo-replication pricing

Георепликация — это функция SKU уровня "Премиум" реестра контейнеров Azure.Geo-replication is a feature of the Premium SKU of Azure Container Registry. При репликации реестра в необходимые регионы с вас взимается плата за реестры уровня "Премиум" для каждого региона.When you replicate a registry to your desired regions, you incur Premium registry fees for each region.

В предыдущем примере Contoso объединил два реестра в один, добавив реплики в восточную часть США, Центральную Канаду и Западную Европу.In the preceding example, Contoso consolidated two registries down to one, adding replicas to East US, Canada Central, and West Europe. Contoso будет платить за уровень "Премиум" четыре раза в месяц. Для этого не нужна дополнительная настройка и управление.Contoso would pay four times Premium per month, with no additional configuration or management. Теперь каждый регион извлекает свои образы локально, повышая производительность и надежность, без дополнительной исходящей платы за сеть начиная от западной части США и заканчивая Канадой и восточной частью США.Each region now pulls their images locally, improving performance, reliability without network egress fees from West US to Canada and East US.

Устранение неполадок с операциями отправки с использованием геореплицированных реестровTroubleshoot push operations with geo-replicated registries

Клиент DOCKER, который передает образ в геореплицированный реестр, может отправить все слои образа и его манифест не в один реплицированный регион.A Docker client that pushes an image to a geo-replicated registry may not push all image layers and its manifest to a single replicated region. Это может произойти из-за того, что диспетчер трафика Azure направляет запросы к реестру в ближайший к сети реплицированный реестр.This may occur because Azure Traffic Manager routes registry requests to the network-closest replicated registry. Если вблизи реестра находятся два региона репликации, то слои образа и манифест могут быть распределены между ними, а операция отправки завершится ошибкой при проверке манифеста.If the registry has two nearby replication regions, image layers and the manifest could be distributed to the two sites, and the push operation fails when the manifest is validated. Эта проблема возникает из-за того, что DNS-имя реестра разрешается на некоторых узлах Linux.This problem occurs because of the way the DNS name of the registry is resolved on some Linux hosts. Эта проблема не возникает в Windows, где предоставляется кэш DNS на стороне клиента.This issue doesn't occur on Windows, which provides a client-side DNS cache.

В случае возникновения этой проблемы одним из решений является применение кэша DNS на стороне клиента, например dnsmasq на узле Linux.If this problem occurs, one solution is to apply a client-side DNS cache such as dnsmasq on the Linux host. Это гарантирует согласованное разрешение имени реестра.This helps ensure that the registry's name is resolved consistently. Если вы используете виртуальную машину Linux в Azure для отправки в реестр, ознакомьтесь со статьей Параметры разрешения DNS-имен для виртуальных машин Linux в Azure.If you're using a Linux VM in Azure to push to a registry, see options in DNS Name Resolution options for Linux virtual machines in Azure.

Чтобы для разрешения DNS-имен при передаче образов использовалась ближайшая реплика, настройте геореплицированный реестр в том же регионе Azure, где находится источник операций отправки, или в ближайшем регионе при работе вне Azure.To optimize DNS resolution to the closest replica when pushing images, configure a geo-replicated registry in the same Azure regions as the source of the push operations, or the closest region when working outside of Azure.

Дополнительная информацияNext steps

Просмотрите руководство, состоящее из трех частей, Подготовка геореплицированного реестра контейнеров Azure.Check out the three-part tutorial series, Geo-replication in Azure Container Registry. Рассмотрите создание геореплицированного реестра, создание контейнера, а затем его развертывание в несколько региональных экземпляров веб-приложений для контейнеров, выполнив единую команду docker push.Walk through creating a geo-replicated registry, building a container, and then deploying it with a single docker push command to multiple regional Web Apps for Containers instances.