API 서버와 관련된 클러스터 연결 문제의 기본 문제 해결

이 문서에서는 Kubernetes 클러스터 명령줄 도구(kubectl) 또는 프로그래밍 언어를 통해 REST API를 사용하는 것과 같은 다른 도구를 통해 클러스터의 API 서버에 연결할 수 없는 경우 AKS(Azure Kubernetes Service) 클러스터에 대한 연결 문제를 설명합니다.

필수 조건

근본 원인 및 해결 방법

API 서버에 대한 연결 문제는 여러 가지 이유로 발생할 수 있지만 근본 원인은 종종 다음 항목 중 하나의 오류와 관련이 있습니다.

  • 네트워크
  • 인증
  • 권한 부여

다음과 같은 일반적인 문제 해결 단계를 수행하여 AKS 클러스터의 API 서버에 대한 연결을 확인할 수 있습니다.

  1. Azure CLI에서 다음 az aks show 명령을 입력합니다. 이 명령은 AKS 클러스터의 FQDN(정규화된 도메인 이름)을 가져옵니다.

    az aks show --resource-group <cluster-resource-group> --name <cluster-name> --query fqdn
    
  2. FQDN을 사용하면 이름 서버 조회(nslookup), 클라이언트 URL(curl) 및 텔넷 명령을 사용하여 클라이언트 컴퓨터에서 API 서버에 연결할 수 있는지 확인합니다.

    # Check if the DNS Resolution is working:
    $ nslookup <cluster-fqdn>  
    
    # Then check if the API Server is reachable:
    $ curl -Iv https://<cluster-fqdn>
    $ telnet <cluster-fqdn> 443
    
  3. AKS 클러스터가 프라이빗인 경우 AKS 클러스터의 Azure Virtual Network에 액세스할 수 있는 VM(가상 머신)에서 명령을 실행해야 합니다. 프라이빗 클러스터에 연결하기 위한 옵션을 참조 하세요.

  4. 필요한 경우 문제 해결 문서의 단계에 따라 클라이언트 IP 주소가 API 서버에 액세스할 수 없으므로 API 서버는 클라이언트 IP 주소를 권한 있는 IP 범위에 추가합니다.

  5. 클라이언트 컴퓨터의 kubectl 버전이 AKS 클러스터의 해당 도구 버전 뒤에 두 개 이상의 부 버전이 아닌지 확인합니다. 최신 버전의 kubectl을 설치하려면 Azure CLI에서 az aks install-cli 명령을 실행합니다. 그런 다음 kubectl 버전 명령을 실행하여 새 설치의 버전 번호를 확인할 수 있습니다.

    예를 들어 Linux에서 다음 명령을 실행합니다.

    sudo az aks install-cli
    kubectl version --client
    

    다른 클라이언트 운영 체제의 경우 이러한 kubectl 설치 지침을 사용합니다.

  6. 필요한 경우 연결 시 문제 해결 문서 구성 파일을 사용할 수 없으므로 Kubernetes 구성 파일(구성)이 유효하고 연결 시 찾을 수 있습니다.

  7. 필요한 경우 문제 해결 문서의 단계를 수행합니다. 사용자는 클러스터 리소스를 가져올 수 없으므로 클러스터 노드의 세부 정보를 나열할 수 있습니다.

  8. 방화벽을 사용하여 AKS 작업자 노드의 송신 트래픽을 제어하는 경우 방화벽에서 AKS에 필요한 최소 송신 규칙을 허용하는 지 확인합니다.

  9. AKS 노드와 연결된 네트워크 보안 그룹이 AKS 노드 내의 TCP 포트 10250에서 통신을 허용하는지 확인합니다.

다른 일반적인 문제 해결 단계는 kubectl 또는 다른 타사 도구가 API 서버에 연결할 때 TCP 시간 초과를 참조하세요.

도움을 요청하십시오.

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