다음을 통해 공유


OutboundConnFailVMExtensionError 오류 코드(50) 문제 해결

이 문서에서는 AKS(Microsoft Azure Kubernetes Service) 클러스터를 시작하거나 만들고 배포하려고 할 때 발생할 수 있는 오류(오류 코드ERR_OUTBOUND_CONN_FAIL, 오류 번호 50라고도 함)를 식별하고 해결하는 OutboundConnFailVMExtensionError 방법을 설명합니다.

필수 조건

  • Netcat(nc) 명령줄 도구

  • dig 명령줄 도구

  • 클라이언트 URL(cURL) 도구

증상

AKS 클러스터를 시작하거나 만들려고 하면 다음과 같은 오류 메시지가 표시됩니다.

에이전트에서 아웃바운드 연결을 설정할 수 없습니다. 자세한 내용은 참조 https://aka.ms/aks-required-ports-and-addresses 하세요.

세부 정보: Code="VMExtensionProvisioningError"

Message="VM은 확장 'vmssCSE'를 처리할 때 오류를 보고했습니다.

오류 메시지: "사용 실패: 명령을 실행하지 못했습니다. 종료 상태=50\n[stdout]\n\n[stderr]\nnc로 종료된 명령: mcr.microsoft.com 포트 443(tcp)에 연결하지 못했습니다. 연결 시간이 초과됨\nCommand가 0이 아닌 상태로 종료됨

오류 세부 정보: "vmssCSE 오류 메시지: {vmssCSE 종료 상태=50, output=pt/apt.conf.d/95proxy...}

원인

노드 프로비전에 필요한 구성 요소를 다운로드하는 사용자 정의 스크립트 확장이 패키지 가져오기에 필요한 아웃바운드 연결을 설정할 수 없습니다. 공용 클러스터의 경우 노드는 포트 443에서 MCR(Microsoft Container Registry) 엔드포인트(mcr.microsoft.com)와 통신하려고 합니다.

트래픽이 차단될 수 있는 여러 가지 이유가 있습니다. 이러한 상황에서 연결을 테스트하는 가장 좋은 방법은 SSH(Secure Shell 프로토콜)를 사용하여 노드에 연결하는 것입니다. 연결을 만들려면 유지 관리 또는 문제 해결을 위해 AKS(Azure Kubernetes Service) 클러스터 노드에 연결의 지침을 따릅니다. 그런 다음, 다음 단계를 수행하여 클러스터의 연결을 테스트합니다.

  1. 노드에 연결한 후 다음 명령을 dig 실행 nc 합니다.

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

    참고 항목

    SSH를 통해 노드에 액세스할 수 없는 경우 Virtual Machine Scale Set 인스턴스에 대해 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 클러스터를 만들려는 경우 노드에 연결한 nc후 , curldig 명령을 실행합니다.

    # 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
    

    참고 항목

    SSH를 통해 노드에 액세스할 수 없는 경우 Virtual Machine Scale Set 인스턴스에 대해 명령을 실행 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이 허용되는지 확인합니다. 차단된 항목을 확인하려면 이전 원인 섹션에 제공된 연결을 확인합니다. AKS 필수 포트 및 FQDN에 대한 자세한 내용은 AKS(Azure Kubernetes Service) 클러스터에 대한 아웃바운드 네트워크 및 FQDN 규칙을 참조 하세요.
AAAA(IPv6) 레코드가 방화벽에서 차단됨 방화벽에서 엔드포인트가 Azure DNS에서 확인되지 못하도록 차단하는 항목이 없는지 확인합니다.
프라이빗 클러스터가 내부 Azure 리소스를 확인할 수 없음 프라이빗 클러스터에서 사용자 지정 DNS를 사용하는 경우 Azure DNS IP 주소(168.63.129.16)를 업스트림 DNS 서버로 추가해야 합니다. 주소가 DNS 서버에 설정되어 있는지 확인합니다. 자세한 내용은 프라이빗 AKS 클러스터 만들기 및 IP 주소 168.63.129.16이란?을 참조하세요.

자세한 정보

타사 연락처 고지

이 문서에 포함된 타사의 연락처 정보는 이 항목에 대한 추가 정보를 찾는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보증하지 않습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.