다음을 통해 공유


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 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.