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


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

Эта статья поможет устранить проблемы, которые могут возникнуть при доступе к реестру контейнеров Azure в виртуальной сети или за брандмауэром или прокси-сервером.

Симптомы

Может содержать один или несколько из следующих элементов.

  • Не удается отправить или извлечь изображения и вы получаете ошибку dial tcp: lookup myregistry.azurecr.io
  • Не удается отправить или извлечь изображения и вы получаете ошибку Client.Timeout exceeded while awaiting headers
  • Не удается отправить или извлечь изображения, возникает ошибка Azure CLI Could not connect to the registry login server
  • Не удалось извлечь образы из реестра в службу Azure Kubernetes или другую службу Azure
  • Не удается получить доступ к реестру за прокси-сервером HTTPS и получить сообщение об ошибке Error response from daemon: login attempt failed with status: 403 Forbidden или Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • Не удалось настроить параметры виртуальной сети и получить ошибку Failed to save firewall and virtual network settings for container registry
  • Не удается получить доступ или просмотреть параметры реестра на портале Azure или управлять реестром с помощью Azure CLI
  • Не удается добавить или изменить параметры виртуальной сети или правила общедоступного доступа
  • Задачи ACR не могут отправлять или вгружать изображения
  • Microsoft Defender для Облака не может сканировать образы в реестре или не отображать результаты сканирования в Microsoft Defender для Облака
  • При попытке получить доступ к реестру, настроенном с помощью частной конечной точки, возникает ошибка host is not reachable .

Причины

  • Брандмауэр клиента или прокси-сервер запрещает доступ — решение
  • Правила доступа к публичной сети в реестре блокируют доступ — решение
  • Конфигурация виртуальной сети или частной конечной точки запрещает доступ — решение
  • Вы пытаетесь интегрировать Microsoft Defender for Cloud или некоторые другие службы Azure с реестром, имеющим частную конечную точку, конечную точку службы или правила доступа к общедоступным IP-адресам — решением

Дальнейшая диагностика

Выполните команду az acr check-health, чтобы получить дополнительную информацию о работоспособности среды реестра и, при необходимости, получить доступ к целевому реестру. Например, диагностика определенных проблем с сетевым подключением или конфигурацией.

Примеры команд см. в статье Проверка работоспособности реестра контейнеров Azure. Если сообщается об ошибках, см. справку по ошибкам и следующие статьи, чтобы найти информацию по рекомендуемым решениям.

Если у вас возникли проблемы с использованием службы Azure Kubernetes с интегрированным реестром, выполните команду az aks check-acr , чтобы убедиться, что кластер AKS может получить доступ к реестру.

Замечание

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

Возможные решения

Настройка доступа к брандмауэру клиента

Чтобы получить доступ к реестру за брандмауэром клиента или прокси-сервером, настройте правила брандмауэра для доступа к общедоступным конечным точкам REST и данных реестра. Если включены выделенные конечные точки данных , вам потребуются правила для доступа:

  • Конечная точка REST: <registryname>.azurecr.io
  • Конечные точки данных: <registry-name>.<region>.data.azurecr.io

Для геореплицированного реестра настройте доступ к конечной точке данных для каждой региональной реплики.

За прокси-сервером HTTPS убедитесь, что клиент Docker и управляющая программа Docker настроены для поведения прокси-сервера. Если вы измените параметры прокси-сервера для управляющей программы Docker, обязательно перезапустите управляемую программу.

Журналы ресурсов реестра в таблице ContainerRegistryLoginEvents могут помочь диагностировать заблокированное подключение.

Связанные ссылки

Настройка общедоступного доступа к реестру

При доступе к реестру через Интернет убедитесь, что реестр разрешает доступ к общедоступной сети от клиента. По умолчанию реестр контейнеров Azure разрешает доступ к конечным точкам общедоступного реестра из всех сетей. Реестр может ограничить доступ к выбранным сетям или выбранным IP-адресам.

Если реестр настроен для виртуальной сети с конечной точкой службы, отключение доступа к общедоступной сети также отключает доступ через конечную точку службы. Если реестр настроен для виртуальной сети с приватным каналом, правила сети IP не применяются к частным конечным точкам реестра.

Связанные ссылки

Настройка доступа к виртуальной сети

Убедитесь, что виртуальная сеть настроена с частной конечной точкой для приватного канала связи или конечной точки службы (в предварительном доступе). В настоящее время конечная точка Бастиона Azure не поддерживается.

Если настроена частная конечная точка, убедитесь, что DNS разрешает общедоступное полное доменное имя реестра, например myregistry.azurecr.io в частный IP-адрес реестра.

  • Выполните команду az acr check-health с --vnet параметром, чтобы подтвердить маршрутизацию DNS в частную конечную точку в виртуальной сети.
  • Используйте сетевую программу, например dig или nslookup для поиска DNS.
  • Убедитесь, что записи DNS настроены для полного доменного имени реестра и для каждого полного доменного имени конечной точки данных.

Просмотрите правила NSG и теги служб, используемые для ограничения трафика из других ресурсов в реестр сети.

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

Если вы хотите ограничить доступ к реестру с помощью виртуальной сети в другой подписке Azure, убедитесь, что вы регистрируете Microsoft.ContainerRegistry поставщика ресурсов в этой подписке. Зарегистрируйте поставщика ресурсов для реестра контейнеров Azure с помощью портала Azure, Azure CLI или других средств Azure.

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

Связанные ссылки

Настройка доступа к службе

В настоящее время доступ к реестру контейнеров с ограничениями сети не разрешен из нескольких служб Azure:

  • Microsoft Defender для Облака не может выполнять сканирование уязвимостей образа в реестре, который ограничивает доступ к частным конечным точкам, выбранным подсетям или IP-адресам.
  • Ресурсы некоторых служб Azure не могут получить доступ к реестру контейнеров с ограничениями сети, включая Службу приложений Azure и экземпляры контейнеров Azure.

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

Начиная с января 2021 г. можно настроить реестр, ограниченный сетью, чтобы разрешить доступ из выбора доверенных служб.

Связанные ссылки

Продвинутое устранение неполадок

Если коллекция журналов ресурсов включена в реестре, просмотрите журнал ContainterRegistryLoginEvents. В этом журнале хранятся события проверки подлинности и состояния, включая входящий идентификатор и IP-адрес. Запросите журнал о сбоях проверки подлинности в реестре.

Связанные ссылки

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

Если проблема не решена, воспользуйтесь следующими вариантами.