Nie można uzyskać prywatnego adresu IP nazwy FQDN usługi Azure Container Registry
Ten artykuł zawiera wskazówki dotyczące rozwiązywania najczęstszych sytuacji, które mogą uniemożliwić rozpoznawanie w pełni kwalifikowanej nazwy domeny (FQDN) rejestru kontenerów platformy Microsoft Azure na jego prywatny adres IP.
Omówienie
W usłudze Azure Container Registry można używać usługi Azure Private Link wraz z prywatnym punktem końcowym i prywatną strefą DNS w celu przypisania prywatnego adresu IP sieci wirtualnej do nazwy FQDN rejestru (nazywanej również serwerem logowania lub punktem końcowym interfejsu API REST).
Ponieważ usługa Azure Container Registry jest wielodostępna, zawsze ma publiczny adres IP. Jeśli ustawisz rejestr kontenerów tak, aby używał technologii Private Link dla nazwy FQDN rejestru, rejestr kontenerów zostanie wystawiony publiczny adres IP i prywatny adres IP.
Po skonfigurowaniu tej konfiguracji występują sytuacje, w których rozpoznawanie nazw DNS nazwy FQDN rejestru kontenerów zwraca publiczny adres IP, mimo że oczekuje się, że rozpoznawanie nazw DNS zwróci prywatny adres IP. Ten scenariusz może powodować wiele problemów, takich jak niepowodzenie ściągnięcia, jeśli publiczny dostęp do rejestru kontenerów jest wyłączony i polegasz tylko na łączności prywatnej.
Uwaga 16.
Aby sprawdzić, czy rejestr kontenerów jest skonfigurowany do użytku prywatnego, wykonaj następujące kroki:
W witrynie Azure Portal wyszukaj i wybierz pozycję Rejestry kontenerów.
Na liście rejestrów kontenerów wybierz nazwę rejestru kontenerów.
W okienku menu rejestru kontenerów wybierz pozycję Ustawienia>Sieć.
Na karcie Dostęp publiczny sprawdź, czy pole Dostęp do sieci publicznej ma wartość Wyłączone.
Wybierz kartę Dostęp prywatny i sprawdź, czy skonfigurowane jest połączenie prywatnego punktu końcowego.
Symptomy
Narzędzie systemu nazw domen (DNS) służy do wykonywania zapytania DNS i uzyskiwania publicznego adresu IP rejestru kontenerów w wynikach zapytania. Jednak rejestr kontenerów jest skonfigurowany do użytku prywatnego, a wynik zapytania DNS wskazuje, że rejestr kontenerów jest skonfigurowany do użytku prywatnego.
Uwaga 16.
Rejestr kontenerów jest skonfigurowany do użytku prywatnego, jeśli nazwa kanoniczna ma postać <container-registry-name>.privatelink.azurecr.io
.
Na przykład następujące polecenie nslookup wykonuje zapytanie DNS w nazwie acrpe332.azurecr.io
FQDN rejestru kontenerów:
nslookup acrpe332.azurecr.io
Dane wyjściowe nslookup zwracają nazwę acrpe332.privatelink.azurecr.io
kanoniczną , więc wiesz, że acrpe332
rejestr kontenerów jest skonfigurowany do użytku prywatnego. Jednak dane wyjściowe zwracają również publiczny adres IP dla acrpe332
nazwy FQDN rejestru kontenerów20.62.128.38
:
Server: 168.63.129.16
Address: 168.63.129.16#53
Non-authoritative answer:
acrpe332.azurecr.io canonical name = acrpe332.privatelink.azurecr.io.
acrpe332.privatelink.azurecr.io canonical name = eus1.fe.azcr.io.
eus1.fe.azcr.io canonical name = eus-acr-reg.trafficmanager.net.
eus-acr-reg.trafficmanager.net canonical name = r0318eus-az.eastus.cloudapp.azure.com.
Name: r0318eus-az.eastus.cloudapp.azure.com
Address: 20.62.128.38
Uwaga 16.
W tym przykładzie użyto usługi Azure DNS (168.63.129.16
) jako serwera DNS. Jeśli używasz niestandardowego serwera DNS, serwer wyświetla jego adres IP wraz z polami Server
i Address
.
Przyczyna 1. Prywatny punkt końcowy rejestru kontenerów i urządzenie znajdują się w różnych sieciach wirtualnych
Interfejs sieciowy prywatnego punktu końcowego rejestru kontenerów znajduje się w innej sieci wirtualnej niż urządzenie, które próbuje rozpoznać nazwę FQDN rejestru kontenerów.
Rozwiązanie 1. Łączenie z siecią wirtualną urządzenia z poziomu prywatnej strefy DNS rejestru kontenerów
Aby pomyślnie wysłać zapytanie o rekordy DNS w prywatnej strefie DNS, dodaj link sieci wirtualnej na poziomie prywatnej strefy DNS rejestru kontenerów dla sieci wirtualnej, na której istnieje urządzenie, które inicjuje zapytanie DNS. To urządzenie może być dowolnym z następujących elementów:
- Węzły usługi Azure Kubernetes Service (AKS)
- Azure Virtual Machines
- Azure Web App for Containers
- Inny typ urządzenia
Aby dodać link sieci wirtualnej do sieci wirtualnej urządzenia z poziomu prywatnej strefy DNS rejestru kontenerów, użyj jednej z następujących metod:
Za pomocą witryny Azure Portal
W witrynie Azure Portal wyszukaj i wybierz strefy Prywatna strefa DNS.
Na liście prywatnych stref DNS wybierz pozycję container-registry-name.privatelink.azurecr.io>.<
W okienku menu prywatnej strefy DNS wybierz pozycję Ustawienia>Link do sieci wirtualnej.
Na stronie Łącza sieci wirtualnej prywatnej strefy DNS wybierz pozycję Dodaj.
Na stronie Link dodaj sieć wirtualną wprowadź nazwę linku, a następnie wybierz sieć wirtualną urządzenia, które musi rozpoznać prywatnie nazwę FQDN rejestru kontenerów. (Opcja Włącz automatyczną rejestrację jest opcjonalna).
Wybierz przycisk OK.
Za pomocą interfejsu wiersza polecenia platformy Azure
W interfejsie wiersza polecenia platformy Azure uruchom polecenie az network private-dns link vnet create .
Przyczyna 2: Niestandardowy serwer DNS nie przekazuje dalej do usługi Azure DNS
Domyślnie sieci wirtualne platformy Azure używają usługi Azure DNS (168.63.129.16
) jako serwera DNS, ale możesz też użyć własnego niestandardowego serwera DNS. Jednak podczas próby skonfigurowania własnego niestandardowego serwera DNS nie pamiętasz, aby ustawić usługę przesyłania dalej na poziomie serwera na usługę Azure DNS na niestandardowym poziomie serwera DNS.
Rozwiązanie 2. Konfigurowanie usługi przesyłania dalej na poziomie serwera do usługi Azure DNS
Jeśli urządzenie, które ma rozpoznać nazwę FQDN rejestru kontenerów za pośrednictwem prywatnego adresu IP, jest częścią sieci wirtualnej platformy Azure korzystającej z niestandardowego serwera DNS, musisz skonfigurować usługę przesyłania dalej na poziomie serwera do usługi Azure DNS na niestandardowym serwerze DNS. Dokładne opcje konfiguracji i kroki zależą od istniejących sieci i systemu DNS (na przykład Windows Server, CoreDNS itd.).
Przyczyna 3: Niestandardowy serwer DNS nie łączy się prywatnie z rejestrem kontenerów
Domyślnie sieci wirtualne platformy Azure używają usługi Azure DNS (168.63.129.16
) jako serwera DNS, ale możesz też użyć własnego niestandardowego serwera DNS. Podczas próby skonfigurowania własnego niestandardowego serwera DNS należy poprawnie ustawić usługę przesyłania dalej na poziomie serwera na usługę Azure DNS na niestandardowym poziomie serwera DNS. Nie pamiętasz jednak dodania łącza sieci wirtualnej na poziomie prywatnej strefy DNS rejestru kontenerów dla sieci wirtualnej, na której istnieje niestandardowy serwer DNS.
Rozwiązanie 3. Łączenie z niestandardowym serwerem DNS z poziomu prywatnej strefy DNS rejestru kontenerów
Aby dodać link sieci wirtualnej do niestandardowego serwera DNS z poziomu prywatnej strefy DNS rejestru kontenerów, użyj jednej z następujących metod:
Za pomocą witryny Azure Portal
W witrynie Azure Portal wyszukaj i wybierz strefy Prywatna strefa DNS.
Na liście prywatnych stref DNS wybierz pozycję container-registry-name.privatelink.azurecr.io>.<
W okienku menu prywatnej strefy DNS wybierz pozycję Ustawienia>Link do sieci wirtualnej.
Na stronie Łącza sieci wirtualnej prywatnej strefy DNS wybierz pozycję Dodaj.
Na stronie Link dodaj sieć wirtualną wprowadź wartość Nazwa łącza, a następnie wybierz odpowiednią wartość sieci wirtualnej dla niestandardowego serwera DNS. (Opcja Włącz automatyczną rejestrację jest opcjonalna).
Wybierz przycisk OK.
Za pomocą interfejsu wiersza polecenia platformy Azure
W interfejsie wiersza polecenia platformy Azure uruchom polecenie az network private-dns link vnet create .
Zasoby
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.