次の方法で共有


OutboundConnFailVMExtensionError エラー コード (50) のトラブルシューティング

この記事では、Microsoft Azure Kubernetes Service (AKS) クラスターを起動または作成してデプロイしようとした場合に発生する可能性がある OutboundConnFailVMExtensionError エラー (エラー コード ERR_OUTBOUND_CONN_FAIL、エラー番号 50 とも呼ばれます) を特定して解決する方法について説明します。

前提条件

  • Netcat (nc) コマンドライン ツール

  • dig コマンドライン ツール

  • クライアント URL (cURL) ツール

現象

AKS クラスターを開始するか作成しようとすると、次のエラー メッセージが表示されます。

エージェントからの送信接続を確立できません。詳細については、 https://aka.ms/aks-required-ports-and-addresses を参照してください。

詳細: Code="VMExtensionProvisioningError"

Message="VM は拡張機能 'vmssCSE' の処理中にエラーを報告しました。

エラー メッセージ: "Enable failed: failed to execute command: command terminated with exit status=50\n[stdout]\n\n[stderr]\nnc: connect to mcr.microsoft.com port 443 (tcp) failed: Connection timed out\nCommand exited with non-zero status

エラーの詳細: "vmssCSE エラー メッセージ: {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}

原因

ノードをプロビジョニングするために必要なコンポーネントをダウンロードするカスタム スクリプト拡張機能では、パッケージを取得するために必要な送信接続を確立できませんでした。 パブリック クラスターの場合、ノードはポート 443 の Microsoft Container Registry (MCR) エンドポイント (mcr.microsoft.com) との通信を試みます。

トラフィックがブロックされる理由は多数あります。 このような状況では、接続をテストする最善の方法は、Secure Shell プロトコル (SSH) を使用してノードに接続することです。 接続を確立するには、 Azure Kubernetes Service (AKS) クラスター ノードへの接続に関するページの手順に従って、メンテナンスまたはトラブルシューティングを行います。 次に、次の手順に従って、クラスター上の接続をテストします。

  1. ノードに接続した後、 nc コマンドと dig コマンドを実行します。

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

    Note

    SSH 経由でノードにアクセスできない場合は、仮想マシン スケール セット インスタンスに対して az vmss run-command invoke コマンドを実行して、送信接続をテストできます。

    # 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. HTTP プロキシを使用して AKS クラスターを作成する場合は、ノードに接続した後、 nccurl、および dig コマンドを実行します。

    # 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
    

    Note

    SSH 経由でノードにアクセスできない場合は、仮想マシン スケール セット インスタンスに対して az vmss run-command invoke コマンドを実行して、送信接続をテストできます。

    # 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"
    

ソリューション

次の表に、トラフィックがブロックされる可能性がある具体的な理由と、それぞれの理由に対応するソリューションを示します。

問題 解決策
トラフィックは、ファイアウォール規則、プロキシ サーバー、またはネットワーク セキュリティ グループ (NSG) によってブロックされます この問題は、AKS に必要なポートまたは完全修飾ドメイン名 (FQDN) がファイアウォール、プロキシ サーバー、または NSG によってブロックされている場合に発生します。 これらのポートと FQDN が許可されていることを確認します。 ブロックされている内容を確認するには、前の Cause セクションで提供されている接続を確認します。 AKS に必要なポートと FQDN の詳細については、「 Azure Kubernetes Service (AKS) クラスターの送信ネットワークと FQDN 規則を参照してください。
AAAA (IPv6) レコードがファイアウォールでブロックされている ファイアウォールで、Azure DNS でのエンドポイントの解決をブロックするものが何も存在しないことを確認します。
プライベート クラスターで内部 Azure リソースを解決できない プライベート クラスターでは、カスタム DNS を使用する場合は、アップストリーム DNS サーバーとして Azure DNS IP アドレス (168.63.129.16) を追加する必要があります。 DNS サーバーでアドレスが設定されていることを確認します。 詳細については、「 プライベート AKS クラスターの作成IP アドレス 168.63.129.16?を参照してください。

詳細

サードパーティのお問い合わせ窓口に関する免責事項

サードパーティのお問い合わせ窓口に関する情報は、ユーザーの便宜のために提供されているものであり、 この連絡先情報は、予告なしに変更される可能性があります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。