다음을 통해 공유


연결할 때 구성 파일을 사용할 수 없음

이 문서에서는 누락되거나 잘못된 구성 파일로 인해 AKS(Azure Kubernetes Service) 클러스터에 연결할 수 없을 때 발생하는 문제를 해결하는 방법을 설명합니다.

필수 구성 요소

증상

클러스터 연결 시도 중에 다음 텍스트와 유사한 오류 메시지가 나타납니다.

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it. 

error: You must be logged in to the server (the server has asked for the client to provide credentials)

원인

kubectl 도구 및 기타 Kubernetes 연결 도구는 config라는 로컬 구성 파일을 사용합니다. 구성 파일에는 클러스터에 연결하기 위한 인증 자격 증명 및 세부 정보가 포함되어 있습니다. 기본적으로 다음을 수행합니다.

  • 관리되는 Kubernetes 클러스터에 대한 액세스 자격 증명을 가져오는 데 사용되는 Azure CLI의 az aks get-credentials 명령은 ~/.kube/config 파일을 수정합니다.

  • kubectl 명령은 $HOME/.kube 디렉터리의 kubeconfig(kubectl 구성) 파일을 사용합니다.

따라서 Kubernetes 세션 중에 발생하는 작업은 kubectl 명령을 실행하는 사용자에 따라 달라집니다. 사용자 A로 로그인하고 두 명령을 모두 실행한 경우 다음과 같은 일이 발생합니다.

  • 명령은 az aks get-credentialsC:\Users\A\.kube\config 파일에 새 kubeconfig 매개 변수를 추가하려고 시도합니다.

  • kubectl 명령은 C:\Users\A\.kube\config 파일을 검색하려고 합니다.

그러나 kubectl의 경우 kubeconfig 파일에 대한 포인터가 변경된 경우 클러스터에 액세스하는 데 사용되는 파일은 다른 위치에 있어야 합니다.

참고

kubeconfig 파일은 Kubernetes 클러스터에 액세스하기 위한 구성 매개 변수를 포함하는 파일에 대한 참조입니다. 반드시 kubeconfig라는 파일을 참조하는 것은 아닙니다.

다음 시나리오 중 하나가 발생하는 경우 오류가 발생합니다.

원인 1: 구성 파일이 없습니다.

구성 파일이 컴퓨터에 없습니다.

해결 방법: 자격 증명 저장

자격 증명을 저장하는 Azure CLI에서 명령을 실행 az aks get-credentials 하여 구성 파일을 로드합니다. 기본 위치를 사용하지 않으려면 구성 위치에 매개 변수를 지정 --file <config-file-location> 합니다(예: ~/Dir1/Dir2/config 또는 C:\Dir1\Dir2\config).

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    [--file <config-file-location>]

원인 2: 구성 파일이 잘못된 디렉터리에 있습니다.

구성 파일은 컴퓨터에 있지만 명령 및/또는 kubectl 도구에서 예상하는 디렉터 az aks get-credentials 리와는 다른 디렉터리에 있습니다.

해결 방법: 구성 파일을 이동하거나, 자격 증명을 다시 저장하거나, KUBECONFIG 환경 변수를 변경합니다.

다음 작업 중 하나 이상을 수행합니다.

  • 구성 파일을 원하는 디렉터리로 이동합니다.

  • az aks get-credentials 명령을 실행합니다. 기본 위치가 아닌 경우 원하는 위치를 지정합니다.

    az aks get-credentials --resource-group <cluster-resource-group> \
        --name <cluster-name> \
        [--file <config-file-location>]
    
  • 다음 옵션 중 하나를 사용하여 kubectl에서 구성 매개 변수를 찾는 위치를 변경합니다.

원인 3: 구성 파일이 만료되었거나 손상되었습니다.

구성 파일이 컴퓨터에 있습니다. 또한 명령 및 kubectl 도구에 az aks get-credentials 대한 예상 디렉터리에 있습니다. 그러나 파일이 만료되었거나 손상되었습니다.

해결 방법: 자격 증명 다시 설정

기존 자격 증명이 만료되거나 손상될 수 있으므로 자격 증명을 다시 설정합니다. 이 경우 매개 변수를 사용하여 az aks get-credentials 명령을 --overwrite-existing 실행할 수 있습니다.

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    --overwrite-existing \
    [--file <config-file-location>]

도움을 요청하십시오.

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