다음을 통해 공유


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

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

필수 구성 요소

  • 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)에 연결하지 못했습니다. 연결 시간이 초과되었습니다\n명령이 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를 통해 노드에 액세스할 수 없는 경우 가상 머신 확장 집합 instance 대해 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 instance 대해 명령을 실행 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"
    

해결 방법

다음 표에서는 트래픽이 차단될 수 있는 특정 이유와 각 이유에 대한 해당 솔루션을 나열합니다.

문제 솔루션
트래픽이 방화벽 규칙 또는 프록시 서버에 의해 차단됨 이 시나리오에서는 방화벽 또는 프록시 서버가 송신 필터링을 수행합니다. 필요한 모든 도메인 및 포트가 허용되는지 확인하려면 AKS(Azure Kubernetes Service 클러스터 노드에 대한 송신 트래픽 제어)를 참조하세요.
NSG(클러스터 네트워크 보안 그룹)에 의해 트래픽이 차단됨 클러스터에 연결된 NSG에서 포트 443, 포트 53 또는 엔드포인트에 연결하는 데 사용해야 할 수 있는 다른 포트에 차단이 없는지 확인합니다. 자세한 내용은 AKS(Azure Kubernetes Service 클러스터 노드에 대한 송신 트래픽 제어)를 참조하세요.
방화벽에서 AAAA(IPv6) 레코드가 차단됩니다. 방화벽에서 엔드포인트가 Azure DNS에서 확인되는 것을 차단하는 것이 없는지 확인합니다.
프라이빗 클러스터는 내부 Azure 리소스를 resolve 수 없습니다. 프라이빗 클러스터에서 사용자 지정 DNS를 사용하는 경우 Azure DNS IP 주소(168.63.129.16)를 업스트림 DNS 서버로 추가해야 합니다. 주소가 DNS 서버에 설정되어 있는지 확인합니다. 자세한 내용은 프라이빗 AKS 클러스터 만들기IP 주소 168.63.129.16이란?을 참조하세요.

추가 정보

타사 연락처 고지

Microsoft는 이 항목에 대한 추가 정보를 찾는 데 도움이 되는 타사 연락처 정보를 제공합니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보장하지 않습니다.

도움을 요청하십시오.

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