Kan geen privé-IP-adres van een Azure Container Registry-FQDN ophalen
Dit artikel bevat richtlijnen voor het oplossen van de meest voorkomende situaties die kunnen voorkomen dat u de FQDN (Fully Qualified Domain Name) van een Microsoft Azure Container Registry kunt omzetten in het privé-IP-adres.
Overzicht
In Azure Container Registry kunt u Azure Private Link gebruiken in combinatie met een privé-eindpunt en een privé-DNS-zone om een privé-IP-adres van een virtueel netwerk toe te wijzen aan de register-FQDN (ook wel de aanmeldingsserver of het REST API-eindpunt genoemd).
Omdat de Azure Container Registry-service multitenant is, heeft deze altijd een openbaar IP-adres. Als u uw containerregister instelt op het gebruik van de Private Link-technologie voor de register-FQDN, krijgt uw containerregister een openbaar IP-adres en een privé-IP-adres.
Nadat u deze configuratie hebt ingesteld, zijn er situaties waarin de DNS-resolutie van de FQDN van uw containerregister het openbare IP-adres retourneert, hoewel u verwacht dat de DNS-resolutie het privé-IP-adres retourneert. Dit scenario kan veel problemen veroorzaken, zoals pull-fouten, als openbare toegang tot uw containerregister is uitgeschakeld en u alleen vertrouwt op de privéverbinding.
Opmerking
Voer de volgende stappen uit om te controleren of uw containerregister is geconfigureerd voor privégebruik:
Zoek en selecteer containerregisters in Azure Portal.
Selecteer in de lijst met containerregisters de naam van uw containerregister.
Selecteer Instellingen>Netwerken in het menuvenster van het containerregister.
Controleer op het tabblad Openbare toegang of het veld Openbare netwerktoegang is ingesteld op Uitgeschakeld.
Selecteer het tabblad Persoonlijke toegang en controleer of er een privé-eindpuntverbinding is ingesteld.
Symptomen
U gebruikt het hulpprogramma Domain Name System (DNS) om een DNS-query uit te voeren en het openbare IP-adres van het containerregister op te halen in de queryresultaten. Het containerregister is echter eigenlijk geconfigureerd voor privégebruik en het resultaat van de DNS-query geeft aan dat het containerregister is geconfigureerd voor privégebruik.
Opmerking
Een containerregister is geconfigureerd voor privégebruik als de canonieke naam in de vorm staat, <container-registry-name>.privatelink.azurecr.io
.
Met de volgende nslookup-opdracht wordt bijvoorbeeld een DNS-query uitgevoerd op de FQDN van het acrpe332.azurecr.io
containerregister:
nslookup acrpe332.azurecr.io
De nslookup-uitvoer retourneert een canonieke naam van acrpe332.privatelink.azurecr.io
, zodat u weet dat het acrpe332
containerregister is geconfigureerd voor privégebruik. De uitvoer retourneert echter ook een openbaar IP-adres van voor de FQDN van 20.62.128.38
het acrpe332
containerregister:
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
Opmerking
In dit voorbeeld wordt de Azure DNS-service (168.63.129.16
) gebruikt als de DNS-server. Als u een aangepaste DNS-server gebruikt, geeft de server het IP-adres samen met de Server
velden en Address
weer.
Oorzaak 1: het privé-eindpunt van het containerregister en het apparaat bevinden zich in verschillende virtuele netwerken
De netwerkinterface van het privé-eindpunt van het containerregister bevindt zich in een ander virtueel netwerk dan het apparaat dat de FQDN van het containerregister probeert op te lossen.
Oplossing 1: Maak een koppeling naar het virtuele netwerk van het apparaat vanaf het niveau van de privé-DNS-zone van het containerregister
Als u een query wilt uitvoeren op DNS-records in de privé-DNS-zone, voegt u een virtuele netwerkkoppeling toe op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop het apparaat bestaat dat de DNS-query initieert. Dit apparaat kan een van de volgende items zijn:
- AKS-knooppunten (Azure Kubernetes Service)
- Virtuele Azure-machines
- Azure Web App for Containers
- Ander type apparaat
Gebruik een van de volgende methoden om de koppeling naar het virtuele netwerk van het apparaat toe te voegen vanuit het privé-DNS-zoneniveau van het containerregister:
Via Azure Portal
Zoek en selecteer privé-DNS-zones in Azure Portal.
Selecteer <container-registry-name.privatelink.azurecr.io> in de lijst met privé-DNS-zones.
Selecteer in het menuvenster van uw privé-DNS-zone Instellingen>Koppeling virtueel netwerk.
Selecteer toevoegen op de pagina Koppelingen voor virtuele netwerken van uw privé-DNS-zone.
Voer op de pagina Koppeling voor virtueel netwerk toevoegen een koppelingsnaam in en selecteer vervolgens het virtuele netwerk van het apparaat dat de FQDN van het containerregister privé moet oplossen. (De optie Automatische registratie inschakelen is optioneel.)
Klik op de OK-knop.
Via Azure CLI
Voer in Azure CLI de opdracht az network private-dns link vnet create uit.
Oorzaak 2: uw aangepaste DNS-server stuurt niet door naar de Azure DNS-service
Virtuele Azure-netwerken gebruiken standaard de Azure DNS-service (168.63.129.16
) als de DNS-server, maar u kunt ook uw eigen aangepaste DNS-server gebruiken. Toen u echter uw eigen aangepaste DNS-server probeerde in te stellen, bent u vergeten een doorstuurserver op serverniveau in te stellen op de Azure DNS-service op het niveau van de aangepaste DNS-server.
Oplossing 2: Een doorstuurserver op serverniveau configureren naar de Azure DNS-service
Als het apparaat dat u verwacht om de FQDN van het containerregister om te zetten via een privé-IP-adres deel uitmaakt van een virtueel Azure-netwerk dat gebruikmaakt van een aangepaste DNS-server, moet u een doorstuurserver op serverniveau configureren naar de Azure DNS-service op de aangepaste DNS-server. De exacte configuratieopties en -stappen zijn afhankelijk van uw bestaande netwerken en DNS (bijvoorbeeld Windows Server, CoreDNS, enzovoort).
Oorzaak 3: uw aangepaste DNS-server is niet privé gekoppeld aan het containerregister
Virtuele Azure-netwerken gebruiken standaard de Azure DNS-service (168.63.129.16
) als de DNS-server, maar u kunt ook uw eigen aangepaste DNS-server gebruiken. Wanneer u probeert uw eigen aangepaste DNS-server in te stellen, stelt u een doorstuurserver op serverniveau correct in op de Azure DNS-service op het niveau van de aangepaste DNS-server. U bent echter vergeten een virtuele netwerkkoppeling toe te voegen op het niveau van de privé-DNS-zone van het containerregister voor het virtuele netwerk waarop de aangepaste DNS-server bestaat.
Oplossing 3: Maak een koppeling naar de aangepaste DNS-server vanaf het niveau van de privé-DNS-zone van het containerregister
Gebruik een van de volgende methoden om de virtuele netwerkkoppeling toe te voegen aan de aangepaste DNS-server vanuit het niveau van de privé-DNS-zone van het containerregister:
Via Azure Portal
Zoek en selecteer privé-DNS-zones in Azure Portal.
Selecteer <container-registry-name.privatelink.azurecr.io> in de lijst met privé-DNS-zones.
Selecteer in het menuvenster van uw privé-DNS-zone Instellingen>Koppeling virtueel netwerk.
Selecteer toevoegen op de pagina Koppelingen voor virtuele netwerken van uw privé-DNS-zone.
Voer op de pagina Koppeling voor virtueel netwerk toevoegen een waarde voor koppelingsnaam in en selecteer vervolgens de juiste waarde voor het virtuele netwerk voor de aangepaste DNS-server. (De optie Automatische registratie inschakelen is optioneel.)
Klik op de OK-knop.
Via Azure CLI
Voer in Azure CLI de opdracht az network private-dns link vnet create uit.
Middelen
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.