Freigeben über


Problembehandlung für den Fehlercode "OutboundConnFailVMExtensionError" (50)

In diesem Artikel wird beschrieben, wie Sie den OutboundConnFailVMExtensionError Fehler (auch als Fehlercode ERR_OUTBOUND_CONN_FAIL, Fehlernummer 50 bezeichnet) identifizieren und beheben, der auftreten kann, wenn Sie versuchen, einen AKS-Cluster (Microsoft Azure Kubernetes Service) zu starten oder zu erstellen und bereitzustellen.

Voraussetzungen

Problembeschreibung

Wenn Sie versuchen, einen AKS-Cluster zu starten oder zu erstellen, wird die folgende Fehlermeldung angezeigt:

Ausgehende Verbindungen von Agents können nicht hergestellt werden. Weitere Informationen finden Sie unter https://aka.ms/aks-required-ports-and-addresses .

Details: Code="VMExtensionProvisioningError"

Message="VM hat einen Fehler bei der Verarbeitung der Erweiterung 'vmssCSE' gemeldet.

Fehlermeldung: "Fehler beim Aktivieren: Fehler beim Ausführen des Befehls: Befehl wurde mit exit status=50 beendet\n[stdout]\n\n[stderr]\nnc: Verbindung mit mcr.microsoft.com Port 443 (tcp) fehlgeschlagen: Timeout\nBefehl beendet mit ungleich 0 status

Fehlerdetails: "vmssCSE-Fehlermeldungen : {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}

Ursache

Die benutzerdefinierte Skripterweiterung, die die erforderlichen Komponenten zum Bereitstellen der Knoten herunterlädt, konnte nicht die erforderliche ausgehende Konnektivität zum Abrufen von Paketen herstellen. Bei öffentlichen Clustern versuchen die Knoten, mit dem McR-Endpunktmcr.microsoft.com (Microsoft Container Registry) an Port 443 zu kommunizieren.

Es gibt viele Gründe, warum der Datenverkehr blockiert werden kann. In diesen 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. Befolgen Sie zum Herstellen der Verbindung die Anweisungen unter Herstellen einer Verbindung mit Azure Kubernetes Service Clusterknoten (AKS) zur Wartung oder Problembehandlung. Testen Sie dann die Konnektivität im Cluster, indem Sie die folgenden Schritte ausführen:

  1. Nachdem Sie eine Verbindung mit dem Knoten hergestellt haben, führen Sie die nc Befehle und dig aus:

    nc -vz mcr.microsoft.com 443 
    dig mcr.microsoft.com 443
    

    Hinweis

    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-Skalierungsgruppe instance 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"
    
  2. Wenn Sie versuchen, einen AKS-Cluster mithilfe eines HTTP-Proxys zu erstellen, führen Sie die ncBefehle , curlund dig 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 443
    

    Hinweis

    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 invoke Befehl für die VM-Skalierungsgruppe instance 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 die spezifischen Gründe für die Sperrung des Datenverkehrs sowie die entsprechende Lösung für jeden Grund aufgeführt.

Problem Lösung
Datenverkehr wird durch Firewallregeln oder einen Proxyserver blockiert. In diesem Szenario filtert eine Firewall oder ein Proxyserver ausgehende Daten. Informationen zum Überprüfen, ob alle erforderlichen Domänen und Ports zulässig sind, finden Sie unter Steuern des ausgehenden Datenverkehrs für Clusterknoten in Azure Kubernetes Service (AKS).
Datenverkehr wird von einer Clusternetzwerksicherheitsgruppe (NSG) blockiert. Stellen Sie für alle NSGs, die an Ihren Cluster angefügt sind, sicher, dass port 443, port 53 oder ein anderer Port, der möglicherweise zum Herstellen einer Verbindung mit dem Endpunkt verwendet werden muss, nicht blockiert wird. Weitere Informationen finden Sie unter Steuern des ausgehenden Datenverkehrs für Clusterknoten in Azure Kubernetes Service (AKS).
Der AAAA-Eintrag (IPv6) ist in der Firewall blockiert. Stellen Sie in Ihrer Firewall sicher, dass nichts vorhanden ist, was die Auflösung des Endpunkts in Azure DNS verhindern würde.
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. Vergewissern Sie sich, dass die Adresse auf Ihren DNS-Servern festgelegt ist. Weitere Informationen finden Sie unter Erstellen eines privaten AKS-Clusters und Was ist die IP-Adresse 168.63.129.16?

Weitere Informationen

Haftungsausschluss für Kontaktinformationen von Drittanbietern

Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.

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.