Поделиться через


Георепликация в реестре контейнеров Azure

Включение георепликации для реестра контейнеров Azure (ACR) создает ресурсы геореплики в выбранном регионе Azure. При отправке изображений в геореплицированный реестр содержимое автоматически синхронизируется со всеми георепликами.

С георепликацией:

  • Управление одним реестром: обслуживание одного набора учетных данных, назначений ролей, правил сети и конфигурации реестра во всех георепликах.
  • Используйте одну глобальную конечную точку: ссылка myregistry.azurecr.io/myimage:tag во всех сборках и развертываниях. Azure направляет запросы к геореплике с лучшим профилем производительности сети для клиента, который обычно является ближайшей георепликой. Тем не менее, если клиент равноудален от нескольких геореплик или ближайшая геореплика недоступна, запросы могут направляться в другое место.
  • Автоматическая синхронизация: отправка тегов и дайджестов один раз; ACR реплицирует содержимое и метаданные во все геореплики.

Для георепликации требуется номер SKU класса Premium.

Примечание.

Основные рекомендации

Модель репликации

Георепликация ACR использует активную-активную модель.

  • Все геореплики активны и доступны для записи— вы можете отправлять и извлекать изображения из любой геореплики, а не только геореплики домашнего региона.
  • Это отличается от моделей первичной вторичной репликации, где только один регион принимает записи и вторичные регионы являются пассивными.

Модель согласованности

ACR использует итоговую согласованность.

  • После загрузки изображения ACR в конечном итоге реплицирует загруженное содержимое и метаданные во все геореплики в фоновом режиме.
  • Время репликации — это функция размера изображения.
  • Пока репликация в конечном итоге не завершится в фоновом режиме, геореплика может не содержать последнее отправленное содержимое или метаданные. Вы можете использовать веб-перехватчики для получения уведомлений, когда репликация для определенного залитого образа завершается в каждой географической реплике.

Рекомендации по обеспечению высокого уровня доступности

Георепликация повышает доступность, сохраняя изображения в нескольких регионах. Если в одном регионе происходит сбой, изображения остаются доступными из других геореплик — отправка и выгрузка продолжают работать с оставшимися георепликами.

Для обеспечения максимальной устойчивости:

Соображения по соглашению об уровне обслуживания (SLA) и категориях услуг

Соглашения об уровне обслуживания реестра контейнеров Azure применяются к каждой геореплике независимо.

Некоторые ограничения уровня служб требуют особого внимания:

  • Хранилище: ограничения объема хранилища распределяются по всем георепликам. При отправке образа размером 1 ГиБ, он занимает 1 ГиБ во всех гео-репликах как только репликация завершится.
  • Ограничения скорости API: ограничения регулирования операций API, такие как количество операций чтения и записи в минуту, зависят от геореплики.

Дополнительные сведения о уровнях служб и ограничениях см. в разделе "Уровни служб ACR".

Рекомендации по ценам

Георепликация может снизить затраты, включив отправки и извлечения изображений в регионе, что позволяет избежать расходов на передачу данных между регионами во время этих операций отправки или извлечения.

Однако межрегиональная плата все еще взимается за репликацию данных на геореплики при отправке образов. Каждая геореплика также несет свои собственные затраты на хранение.

Дополнительные сведения см. в разделе о ценах ACR.

Настройка георепликации

Необходимые разрешения

Чтобы управлять георепликами, ваше удостоверение должно иметь следующие разрешения:

Разрешение Description
Microsoft.ContainerRegistry/registries/read Получение свойств реестра
Microsoft.ContainerRegistry/registries/write Создание или обновление свойств реестра
Microsoft.ContainerRegistry/registries/replications/read Перечисление геореплик
Microsoft.ContainerRegistry/registries/replications/write Создание или обновление геореплики
Microsoft.ContainerRegistry/registries/replications/delete Удалите геореплику
Microsoft.ContainerRegistry/registries/replications/operationStatuses/read Получение статуса операции георепликации

Портал Azure

  1. Перейдите в реестр на портале Azure.
  2. В разделе "Службы" выберите георепликацию.
  3. На карте:
    • Синий шестнадцатеричный: домашний регион (где вы создали реестр)
    • Зеленые шестиугольники: доступные регионы
    • Серые шестиугольники: недоступные регионы
  4. Выберите зеленый шестнадцатеричник, а затем нажмите кнопку "Создать".

Снимок экрана: карта георепликации на портале Azure.

Azure CLI (Интерфейс командной строки для Azure)

# Create a replica
az acr replication create --registry myregistry --location eastus

# List replicas
az acr replication list --registry myregistry --output table

# Delete a replica
az acr replication delete --registry myregistry --name eastus

Дополнительные команды см. в статье az acr replication.

Отправка или извлечение образов через глобальную конечную точку

После настройки георепликации вы можете отправить или извлечь содержимое в реестр через глобальную конечную точку реестра (myregistry.azurecr.io).

  • При отправке или получении данных через глобальную конечную точку ACR направляет запрос на геореплику с лучшим профилем производительности сети для клиента.
  • Обычно это ближайшая географическая репликация.
  • Тем не менее, если клиент равноудален от нескольких геореплик или ближайшая геореплика недоступна, запросы могут направляться в другое место.
  • Эта маршрутизация управляется ACR — вы не контролируете, какая геореплика обрабатывает определенный запрос.

Временно исключить геореплику из глобальной маршрутизации конечных точек

Вы можете исключить геореплику из глобальной маршрутизации конечных точек, отключив --region-endpoint-enabled параметр для конкретной геореплики. Это полезно для обслуживания или устранения неполадок.

  • --region-endpoint-enabled Если для конкретной геореплики задано falseзначение, ACR останавливает маршрутизацию запросов на ту конкретную геореплику для запросов, которые отправляются в глобальную конечную точку.
  • Данные продолжают синхронизироваться с георепликой, даже если глобальная маршрутизация конечных точек отключена для конкретной геореплики.
  • Таким образом, квота хранилища и затраты продолжают увеличиваться для этой геореплики.
# Prevent the global endpoint from routing to a specific geo-replica.
# This excludes only the specific geo-replica from global endpoint routing.
az acr replication update --registry myregistry --name eastus \
  --region-endpoint-enabled false

# Re-enable the geo-replica in global endpoint routing.
# This allows the global endpoint to route certain requests to the geo-replica
# depending on the client's network performance profile with the geo-replica.
az acr replication update --registry myregistry --name eastus \
  --region-endpoint-enabled true

Отправка или извлечение изображений через региональные конечные точки геореплики

Региональные конечные точки предоставляют выделенные URL-адреса для каждой реплики, позволяя точно указать, какие региональные конечные точки обрабатывают запрос на отправку или получение.

  • myregistry. eastus.geo.azurecr.io
  • myregistry.westeurope.geo.azurecr.io

Используйте региональные конечные точки при необходимости:

  • Предсказуемая маршрутизация: Убедитесь, что нагрузка всегда использует определённую реплику для обеспечения локальной привязанности.
  • Отработка отказа на стороне клиента: реализуйте собственную логику отработки отказа между региональными георепликами в случае сбоя.
  • Согласованность пуш-пул: выгрузка и загрузка из одной и той же реплики, чтобы избежать задержки репликации.

Примечание.

В настоящее время региональные конечные точки находятся в частном предварительном просмотре. Сведения о регистрации и документации см. в региональных конечных точках для геореплицированных реестров.

Устранение неполадок

Сбой принудительной отправки с ошибками манифеста

Некоторые сопоставители DNS Linux не кэшируют ответы последовательно. При наличии нескольких геореплик в соседних регионах, DNS может разрешаться на разные реплики во время одной отправки (отскоки DNS), из-за чего отправленный манифест ссылается на слои, которые были отправлены в другую геореплику.

Решения:

Создание геореплики зависло для реестров с поддержкой частных конечных точек

Обычно это возникает, когда удостоверение, создающее геореплику для реестра, поддерживающего частную конечную точку, не имеет достаточных разрешений для создания сетевых ресурсов частной конечной точки.

Решение.

  • Чтобы устранить проблему, удалите геореплику, которая зависла в состоянии подготовки.
  • После этого убедитесь, что идентификатор имеет разрешение Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write перед созданием геореплики.

Дальнейшие шаги