Die private IP-Adresse eines FQDN von Azure Container Registry kann nicht abgerufen werden.
Dieser Artikel enthält Anleitungen zur Problembehandlung in den häufigsten Situationen, die Sie daran hindern können, den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) einer Microsoft Azure Container Registry-Instanz in die private IP-Adresse aufzulösen.
Übersicht
In Azure Container Registry können Sie Azure Private Link zusammen mit einem privaten Endpunkt und einer privaten DNS-Zone verwenden, um dem Registrierungs-FQDN (auch als Anmeldeserver oder REST-API-Endpunkt bezeichnet) eine private IP-Adresse eines virtuellen Netzwerks zuzuweisen.
Da der Azure Container Registry-Dienst mehrinstanzenfähig ist, verfügt er immer über eine öffentliche IP-Adresse. Wenn Sie Ihre Containerregistrierung so festlegen, dass die Private Link-Technologie für den Registrierungs-FQDN verwendet wird, wird Ihrer Containerregistrierung eine öffentliche IP-Adresse und eine private IP-Adresse ausgestellt.
Nachdem Sie diese Konfiguration eingerichtet haben, gibt es Situationen, in denen die DNS-Auflösung Ihres Containerregistrierungs-FQDN die öffentliche IP-Adresse zurückgibt, obwohl Sie erwarten, dass die DNS-Auflösung die private IP-Adresse zurückgibt. Dieses Szenario kann viele Probleme verursachen, z. B. Pullfehler, wenn der öffentliche Zugriff auf Ihre Containerregistrierung deaktiviert ist und Sie nur auf die private Konnektivität angewiesen sind.
Hinweis
Führen Sie die folgenden Schritte aus, um zu überprüfen, ob Ihre Containerregistrierung für die private Verwendung konfiguriert ist:
Suchen Sie im Azure-Portal nach Containerregistrierungen, und wählen Sie diese Option aus.
Wählen Sie in der Liste der Containerregistrierungen den Namen Ihrer Containerregistrierung aus.
Wählen Sie im Menübereich Ihrer Containerregistrierung Einstellungen>Netzwerk aus.
Vergewissern Sie sich auf der Registerkarte Öffentlicher Zugriff , dass das Feld Öffentlicher Netzwerkzugriff auf Deaktiviert festgelegt ist.
Wählen Sie die Registerkarte Privater Zugriff aus, und überprüfen Sie, ob eine private Endpunktverbindung eingerichtet ist.
Symptome
Sie verwenden ein DNS-Hilfsprogramm (Domain Name System), um eine DNS-Abfrage auszuführen und die öffentliche IP-Adresse der Containerregistrierung in den Abfrageergebnissen abzurufen. Die Containerregistrierung ist jedoch tatsächlich für die private Verwendung konfiguriert, und das DNS-Abfrageergebnis gibt an, dass die Containerregistrierung für die private Verwendung konfiguriert ist.
Hinweis
Eine Containerregistrierung wird für die private Verwendung konfiguriert, wenn der kanonische Name das Format <container-registry-name>.privatelink.azurecr.io
hat.
Der folgende nslookup-Befehl führt beispielsweise eine DNS-Abfrage für den FQDN der acrpe332.azurecr.io
Containerregistrierung aus:
nslookup acrpe332.azurecr.io
Die nslookup-Ausgabe gibt den kanonischen Namen zurück acrpe332.privatelink.azurecr.io
, sodass Sie wissen, dass die Containerregistrierung für die acrpe332
private Verwendung konfiguriert ist. Die Ausgabe gibt jedoch auch eine öffentliche IP-Adresse von 20.62.128.38
für den FQDN der acrpe332
Containerregistrierung zurück:
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
Hinweis
In diesem Beispiel wird der Azure DNS-Dienst (168.63.129.16
) als DNS-Server verwendet. Wenn Sie einen benutzerdefinierten DNS-Server verwenden, zeigt der Server seine IP-Adresse zusammen mit den Server
Feldern und Address
an.
Ursache 1: Der private Endpunkt der Containerregistrierung und das Gerät befinden sich in verschiedenen virtuellen Netzwerken.
Die Netzwerkschnittstelle des privaten Endpunkts der Containerregistrierung befindet sich in einem anderen virtuellen Netzwerk als das Gerät, das versucht, den FQDN der Containerregistrierung aufzulösen.
Lösung 1: Herstellen einer Verbindung mit dem virtuellen Netzwerk des Geräts aus der privaten DNS-Zonenebene der Containerregistrierung
Um DNS-Einträge in der privaten DNS-Zone erfolgreich abzufragen, fügen Sie eine virtuelle Netzwerkverbindung auf der Ebene der privaten DNS-Zone der Containerregistrierung für das virtuelle Netzwerk hinzu, in dem sich das Gerät befindet, das die DNS-Abfrage initiiert. Dieses Gerät kann eines der folgenden Elemente sein:
- Azure Kubernetes Service-Knoten (AKS)
- Virtuelle Azure-Computer
- Azure-Web-App für Container
- Anderer Gerätetyp
Verwenden Sie eine der folgenden Methoden, um die virtuelle Netzwerkverbindung über die ebene der privaten DNS-Zone der Containerregistrierung zum virtuellen Netzwerk des Geräts hinzuzufügen:
Über das Azure-Portal
Suchen Sie im Azure-Portal nach Private DNS-Zonen, und wählen Sie diese Option aus.
Wählen Sie in der Liste der privaten DNS-Zonen container-registry-name.privatelink.azurecr.io> aus.<
Wählen Sie im Menübereich Ihrer privaten DNS-Zone Einstellungen>Link für virtuelles Netzwerk aus.
Wählen Sie auf der Seite Virtuelle Netzwerklinks Ihrer privaten DNS-Zone die Option Hinzufügen aus.
Geben Sie auf der Seite Link für virtuelles Netzwerk hinzufügen einen Linknamen ein, und wählen Sie dann das virtuelle Netzwerk des Geräts aus, das den FQDN der Containerregistrierung privat auflösen muss. (Die Option Automatische Registrierung aktivieren ist optional.)
Klicken Sie auf die Schaltfläche OK.
Über die Azure CLI
Führen Sie in der Azure CLI den Befehl az network private-dns link vnet create aus.
Ursache 2: Ihr benutzerdefinierter DNS-Server leitet nicht an den Azure DNS-Dienst weiter.
Standardmäßig verwenden virtuelle Azure-Netzwerke den Azure DNS-Dienst (168.63.129.16
) als DNS-Server. Alternativ können Sie aber auch Ihren eigenen benutzerdefinierten DNS-Server verwenden. Beim Versuch, einen eigenen benutzerdefinierten DNS-Server einzurichten, haben Sie jedoch vergessen, eine Weiterleitung auf Serverebene auf den Azure DNS-Dienst auf benutzerdefinierter DNS-Serverebene festzulegen.
Lösung 2: Konfigurieren einer Weiterleitung auf Serverebene an den Azure DNS-Dienst
Wenn das Gerät, das den FQDN der Containerregistrierung über eine private IP-Adresse auflösen soll, Teil eines virtuellen Azure-Netzwerks ist, das einen benutzerdefinierten DNS-Server verwendet, müssen Sie eine Weiterleitung auf Serverebene an den Azure DNS-Dienst auf dem benutzerdefinierten DNS-Server konfigurieren. Die genauen Konfigurationsoptionen und -schritte hängen von Ihren vorhandenen Netzwerken und DNS ab (z. B. Windows Server, CoreDNS usw.).
Ursache 3: Ihr benutzerdefinierter DNS-Server wird nicht privat mit der Containerregistrierung verknüpft.
Standardmäßig verwenden virtuelle Azure-Netzwerke den Azure DNS-Dienst (168.63.129.16
) als DNS-Server. Alternativ können Sie aber auch Ihren eigenen benutzerdefinierten DNS-Server verwenden. Wenn Sie versucht haben, Einen eigenen benutzerdefinierten DNS-Server einzurichten, legen Sie ordnungsgemäß eine Weiterleitung auf Serverebene auf den Azure DNS-Dienst auf benutzerdefinierter DNS-Serverebene fest. Sie haben jedoch vergessen, eine virtuelle Netzwerkverbindung auf der Ebene der privaten DNS-Zone der Containerregistrierung für das virtuelle Netzwerk hinzuzufügen, in dem sich der benutzerdefinierte DNS-Server befindet.
Lösung 3: Verknüpfen mit dem benutzerdefinierten DNS-Server von der ebene der privaten DNS-Zone der Containerregistrierung
Verwenden Sie eine der folgenden Methoden, um dem benutzerdefinierten DNS-Server die virtuelle Netzwerkverbindung aus der ebene der privaten DNS-Zone der Containerregistrierung hinzuzufügen:
Über das Azure-Portal
Suchen Sie im Azure-Portal nach Private DNS-Zonen, und wählen Sie diese Option aus.
Wählen Sie in der Liste der privaten DNS-Zonen container-registry-name.privatelink.azurecr.io> aus.<
Wählen Sie im Menübereich Ihrer privaten DNS-Zone Einstellungen>Link für virtuelles Netzwerk aus.
Wählen Sie auf der Seite Virtuelle Netzwerklinks Ihrer privaten DNS-Zone die Option Hinzufügen aus.
Geben Sie auf der Seite Link für virtuelles Netzwerk hinzufügen den Wert Linkname ein, und wählen Sie dann den entsprechenden Wert für virtuelles Netzwerk für den benutzerdefinierten DNS-Server aus. (Die Option Automatische Registrierung aktivieren ist optional.)
Klicken Sie auf die Schaltfläche OK.
Über die Azure CLI
Führen Sie in der Azure CLI den Befehl az network private-dns link vnet create aus.
Ressourcen
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.