Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zusammenfassung
In diesem Artikel wird beschrieben, wie Sie den VMExtensionError_OutboundConnFail Fehler (auch bekannt als ERR_OUTBOUND_CONN_FAIL Meldung, Fehlernummer 50) identifizieren und beheben, die auftreten können, wenn Sie versuchen, einen Microsoft Azure Kubernetes Service (AKS)-Cluster zu starten oder bereitzustellen.
Voraussetzungen
Das Befehlszeilentool Netcat (nc)
Das Client-URL-Tool (cURL)
Symptome
Wenn Sie versuchen, einen AKS-Cluster zu starten oder zu erstellen, erhalten Sie die folgende Fehlermeldung:
Die ausgehende Verbindung von Agents kann nicht hergestellt werden. Weitere Informationen finden Sie unter https://aka.ms/aks-required-ports-and-addresses .
Einzelheiten: Code="VMExtensionProvisioningError"
Message="VM hat beim Verarbeiten der Erweiterung 'vmssCSE' einen Fehler gemeldet.
Fehlermeldung: "CSE ist mit 'VMExtensionError_OutboundConnFail' fehlgeschlagen. Fehler bei der Bereitstellung von AKS-Knoten aufgrund der Unfähigkeit, ausgehende Konnektivität zum Abrufen von Paketen mit dem Beendigungsstatus 50 herzustellen. Weitere Informationen finden Sie unter https://aka.ms/aks/outbound-rules-control-egress und https://aka.ms/aks/vmextensionerror_outboundconnfail zur Problembehandlung.
Ursache
Die benutzerdefinierte Skripterweiterung, die die erforderlichen Komponenten zum Bereitstellen der Knoten herunterlädt, konnte die erforderliche ausgehende Verbindung zum Abrufen von Paketen nicht einrichten. Bei öffentlichen Clustern versuchen die Knoten, mit dem Microsoft Container Registry (MCR)-Endpunkt (mcr.microsoft.com) an Port 443 zu kommunizieren.
Es gibt viele Gründe, warum der Datenverkehr blockiert werden kann. In einem dieser Situationen besteht die beste Möglichkeit zum Testen der Konnektivität darin, das Secure Shell-Protokoll (SSH) zum Herstellen einer Verbindung mit dem Knoten zu verwenden. Um die Verbindung herzustellen, befolgen Sie die Anweisungen in "Herstellen einer Verbindung mit Azure Kubernetes Service (AKS)-Clusterknoten zur Wartung oder Problembehandlung". Testen Sie dann die Konnektivität auf dem Cluster, indem Sie die folgenden Schritte ausführen:
Führen Sie nach der Verbindung mit dem Knoten die Befehle
ncunddigaus.nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443Notiz
Wenn Sie nicht über SSH auf den Knoten zugreifen können, können Sie die ausgehende Konnektivität testen, indem Sie den Befehl "az vmss run-command invoke " für die Vm Scale Set-Instanz ausführen:
# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test outbound connectivity. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "nc -vz mcr.microsoft.com 443"Wenn Sie versuchen, einen AKS-Cluster mithilfe eines HTTP-Proxys zu erstellen, führen Sie die
ncBefehlecurlunddigBefehle aus, nachdem Sie eine Verbindung mit dem Knoten hergestellt haben:# Test connectivity to the HTTP proxy server from the AKS node. nc -vz <http-s-proxy-address> <port> # Test traffic from the HTTP proxy server to HTTPS. curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test traffic from the HTTPS proxy server to HTTPS. curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test DNS functionality. dig mcr.microsoft.com 443Notiz
Wenn Sie nicht über SSH auf den Knoten zugreifen können, können Sie die ausgehende Konnektivität testen, indem Sie den
az vmss run-command invokeBefehl für die Vm Scale Set-Instanz ausführen:# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test connectivity from the HTTP proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test connectivity from the HTTPS proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test DNS functionality. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "dig mcr.microsoft.com 443"
Lösung
In der folgenden Tabelle sind spezifische Gründe aufgeführt, warum Datenverkehr blockiert werden kann, und die entsprechende Lösung aus jedem Grund:
| Problem | Lösung |
|---|---|
| Datenverkehr wird durch Firewallregeln, einen Proxyserver oder eine Netzwerksicherheitsgruppe (Network Security Group, NSG) blockiert. | Dieses Problem tritt auf, wenn die erforderlichen AKS-Ports oder vollqualifizierte Domänennamen (Fully Qualified Domain Names, FQDNs) durch eine Firewall, einen Proxyserver oder NSG blockiert werden. Stellen Sie sicher, dass diese Ports und FQDNs zulässig sind. Um zu ermitteln, was blockiert wird, überprüfen Sie die im vorherigen Abschnitt "Ursache " bereitgestellte Konnektivität. Weitere Informationen zu den erforderlichen AKS-Ports und FQDNs finden Sie unter "Ausgehende Netzwerk- und FQDN-Regeln für Azure Kubernetes Service (AKS)-Cluster.For more information about AKS required ports and FQDNs, see Outbound network and FQDN rules for Azure Kubernetes Service (AKS) clusters. |
| Der AAAA-Eintrag (IPv6) wird in der Firewall blockiert. | Überprüfen Sie in Ihrer Firewall, ob nichts vorhanden ist, das die Auflösung des Endpunkts in Azure DNS blockiert. |
| Privater Cluster kann interne Azure-Ressourcen nicht auflösen | In privaten Clustern muss die Azure DNS-IP-Adresse (168.63.129.16) als upstream-DNS-Server hinzugefügt werden, wenn benutzerdefiniertes DNS verwendet wird. Stellen Sie sicher, dass die Adresse auf Ihren DNS-Servern festgelegt ist. Weitere Informationen finden Sie unter Erstellen eines privaten AKS-Clusters und Was ist IP-Adresse 168.63.129.16? |
Weitere Informationen
Haftungsausschluss für Kontaktinformationen von Drittanbietern
Microsoft stellt Kontaktinformationen zu Drittanbietern bereit, um Ihnen dabei zu helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Microsoft garantiert nicht die Richtigkeit von Informationen von Drittanbietern.