Rozwiązywanie problemów z siecią w rejestrze

Ten artykuł ułatwia rozwiązywanie problemów, które mogą wystąpić podczas uzyskiwania dostępu do rejestru kontenerów platformy Azure w sieci wirtualnej lub za zaporą lub serwerem proxy.

Objawy

Może zawierać co najmniej jedną z następujących czynności:

  • Nie można wypchnąć lub ściągnąć obrazów i zostanie wyświetlony błąd dial tcp: lookup myregistry.azurecr.io
  • Nie można wypchnąć lub ściągnąć obrazów i zostanie wyświetlony błąd Client.Timeout exceeded while awaiting headers
  • Nie można wypchnąć lub ściągnąć obrazów i zostanie wyświetlony błąd interfejsu wiersza polecenia platformy Azure Could not connect to the registry login server
  • Nie można ściągnąć obrazów z rejestru do usługi Azure Kubernetes Service lub innej usługi platformy Azure
  • Nie można uzyskać dostępu do rejestru za serwerem proxy HTTPS i występuje błąd Error response from daemon: login attempt failed with status: 403 Forbidden lub Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • Nie można skonfigurować ustawień sieci wirtualnej i występuje błąd Failed to save firewall and virtual network settings for container registry
  • Nie można uzyskać dostępu do ustawień rejestru lub wyświetlić ich w witrynie Azure Portal lub zarządzać rejestrem przy użyciu interfejsu wiersza polecenia platformy Azure
  • Nie można dodać lub zmodyfikować ustawień sieci wirtualnej lub reguł dostępu publicznego
  • Usługa ACR Tasks nie może wypychać ani ściągać obrazów
  • Microsoft Defender dla Chmury nie można skanować obrazów w rejestrze lub wyniki skanowania nie są wyświetlane w Microsoft Defender dla Chmury
  • Podczas próby uzyskania dostępu do rejestru skonfigurowanego przy użyciu prywatnego punktu końcowego występuje błąd host is not reachable .

Przyczyny

  • Zapora klienta lub serwer proxy uniemożliwia dostęp — rozwiązanie
  • Reguły dostępu do sieci publicznej w rejestrze uniemożliwiają dostęp — rozwiązanie
  • Konfiguracja sieci wirtualnej lub prywatnego punktu końcowego uniemożliwia dostęp — rozwiązanie
  • Próbujesz zintegrować Microsoft Defender dla Chmury lub niektóre inne usługi platformy Azure z rejestrem, który ma prywatny punkt końcowy, punkt końcowy usługi lub reguły dostępu publicznego adresu IP — rozwiązanie

Dalsza diagnostyka

Uruchom polecenie az acr check-health, aby uzyskać więcej informacji o kondycji środowiska rejestru i opcjonalnie dostęp do rejestru docelowego. Na przykład zdiagnozuj niektóre problemy z łącznością sieciową lub konfiguracją.

Zobacz Sprawdzanie kondycji rejestru kontenerów platformy Azure, aby zapoznać się z przykładami poleceń. Jeśli zgłaszane są błędy, zapoznaj się z dokumentacją błędów i poniższymi sekcjami, aby zapoznać się z zalecanymi rozwiązaniami.

Jeśli występują problemy z używaniem usługi Azure Kubernetes Service ze zintegrowanym rejestrem, uruchom polecenie az aks check-acr , aby sprawdzić, czy klaster usługi AKS może uzyskać dostęp do rejestru.

Uwaga

Niektóre objawy łączności sieciowej mogą również wystąpić, gdy występują problemy z uwierzytelnianiem lub autoryzacją rejestru. Zobacz Rozwiązywanie problemów z logowaniem do rejestru.

Potencjalne rozwiązania

Konfigurowanie dostępu do zapory klienta

Aby uzyskać dostęp do rejestru zza zapory klienta lub serwera proxy, skonfiguruj reguły zapory, aby uzyskać dostęp do publicznego interfejsu REST i punktów końcowych danych rejestru. Jeśli dedykowane punkty końcowe danych są włączone, musisz mieć dostęp do reguł:

  • Punkt końcowy REST: <registryname>.azurecr.io
  • Punkty końcowe danych: <registry-name>.<region>.data.azurecr.io

W przypadku rejestru replikowanego geograficznie skonfiguruj dostęp do punktu końcowego danych dla każdej repliki regionalnej.

Za serwerem proxy HTTPS upewnij się, że zarówno klient platformy Docker, jak i demon platformy Docker są skonfigurowane pod kątem zachowania serwera proxy. Jeśli zmienisz ustawienia serwera proxy dla demona platformy Docker, pamiętaj o ponownym uruchomieniu demona.

Dzienniki zasobów rejestru w tabeli ContainerRegistryLoginEvents mogą pomóc w zdiagnozowaniu zablokowanego połączenia.

Powiązane linki:

Konfigurowanie publicznego dostępu do rejestru

Jeśli uzyskujesz dostęp do rejestru za pośrednictwem Internetu, upewnij się, że rejestr zezwala na dostęp do sieci publicznej z klienta. Domyślnie rejestr kontenerów platformy Azure umożliwia dostęp do publicznych punktów końcowych rejestru ze wszystkich sieci. Rejestr może ograniczyć dostęp do wybranych sieci lub wybranych adresów IP.

Jeśli rejestr jest skonfigurowany dla sieci wirtualnej z punktem końcowym usługi, wyłączenie dostępu do sieci publicznej powoduje również wyłączenie dostępu do sieci publicznej za pośrednictwem punktu końcowego usługi. Jeśli rejestr jest skonfigurowany dla sieci wirtualnej z usługą Private Link, reguły sieci IP nie mają zastosowania do prywatnych punktów końcowych rejestru.

Powiązane linki:

Konfigurowanie dostępu do sieci wirtualnej

Upewnij się, że sieć wirtualna jest skonfigurowana przy użyciu prywatnego punktu końcowego dla usługi Private Link lub punktu końcowego usługi (wersja zapoznawcza). Obecnie punkt końcowy usługi Azure Bastion nie jest obsługiwany.

Jeśli skonfigurowano prywatny punkt końcowy, upewnij się, że usługa DNS rozpoznaje publiczną nazwę FQDN rejestru, taką jak myregistry.azurecr.io do prywatnego adresu IP rejestru.

  • Uruchom polecenie az acr check-health z parametrem --vnet , aby potwierdzić routing DNS do prywatnego punktu końcowego w sieci wirtualnej.
  • Użyj narzędzia sieciowego, takiego jak dig lub nslookup do wyszukiwania DNS.
  • Upewnij się, że rekordy DNS są skonfigurowane dla nazwy FQDN rejestru i dla każdej nazwy FQDN punktu końcowego danych.

Przejrzyj reguły sieciowej grupy zabezpieczeń i tagi usług używane do ograniczania ruchu z innych zasobów w sieci do rejestru.

Jeśli skonfigurowano punkt końcowy usługi do rejestru, upewnij się, że reguła sieci została dodana do rejestru, która umożliwia dostęp z tej podsieci sieciowej. Punkt końcowy usługi obsługuje tylko dostęp z maszyn wirtualnych i klastrów AKS w sieci.

Jeśli chcesz ograniczyć dostęp do rejestru przy użyciu sieci wirtualnej w innej subskrypcji platformy Azure, upewnij się, że dostawca zasobów został zarejestrowany Microsoft.ContainerRegistry w tej subskrypcji. Zarejestruj dostawcę zasobów dla usługi Azure Container Registry przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub innych narzędzi platformy Azure.

Jeśli usługa Azure Firewall lub podobne rozwiązanie jest skonfigurowane w sieci, sprawdź, czy ruch wychodzący z innych zasobów, takich jak klaster usługi AKS, jest włączony, aby uzyskać dostęp do punktów końcowych rejestru.

Powiązane linki:

Konfigurowanie dostępu do usługi

Obecnie dostęp do rejestru kontenerów z ograniczeniami sieciowymi nie jest dozwolony z kilku usług platformy Azure:

  • Microsoft Defender dla Chmury nie może przeprowadzić skanowania luk w zabezpieczeniach obrazów w rejestrze, który ogranicza dostęp do prywatnych punktów końcowych, wybranych podsieci lub adresów IP.
  • Zasoby niektórych usług platformy Azure nie mogą uzyskać dostępu do rejestru kontenerów z ograniczeniami sieci, w tym aplikacja systemu Azure Service i Azure Container Instances.

Jeśli wymagany jest dostęp do tych usług platformy Azure lub integracja z rejestrem kontenerów, usuń ograniczenie sieci. Na przykład usuń prywatne punkty końcowe rejestru lub usuń lub zmodyfikuj reguły dostępu publicznego rejestru.

Od stycznia 2021 r. można skonfigurować rejestr z ograniczeniami sieci, aby zezwolić na dostęp z wybranych zaufanych usług.

Powiązane linki:

Zaawansowane rozwiązywanie problemów

Jeśli zbieranie dzienników zasobów jest włączone w rejestrze, przejrzyj dziennik ContainterRegistryLoginEvents. Ten dziennik przechowuje zdarzenia i stan uwierzytelniania, w tym tożsamość przychodzącą i adres IP. Wykonaj zapytanie w dzienniku pod kątem błędów uwierzytelniania rejestru.

Powiązane linki:

Następne kroki

Jeśli nie rozwiążesz problemu w tym miejscu, zapoznaj się z następującymi opcjami.