연결할 때 구성 파일을 사용할 수 없음
이 문서에서는 누락되거나 잘못된 구성 파일로 인해 AKS(Azure Kubernetes Service) 클러스터에 연결할 수 없을 때 발생하는 문제를 해결하는 방법을 설명합니다.
필수 조건
- Azure CLI
- Kubernetes 클러스터 명령줄 도구(kubectl). 또는 Azure CLI에서 az aks install-cli 명령을 실행하여 kubectl을 설치할 수 있습니다.
증상
클러스터 연결 시도 중에 다음 텍스트와 유사한 오류 메시지가 나타납니다.
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-credentials
명령은 C:\Users\A\.kube\config 파일에 새 kubeconfig 매개 변수를 추가하려고 시도합니다.kubectl 명령은 C:\Users\A\.kube\config 파일을 검색하려고 합니다.
그러나 kubectl의 경우 kubeconfig 파일에 대한 포인터가 변경된 경우 클러스터에 액세스하는 데 사용되는 파일은 다른 위치에 있어야 합니다.
참고 항목
kubeconfig 파일은 Kubernetes 클러스터에 액세스하기 위한 구성 매개 변수를 포함하는 파일에 대한 참조입니다. kubeconfig라는 파일을 반드시 참조하는 것은 아닙니다.
이 오류는 다음 시나리오 중 하나가 발생하는 경우에 발생합니다.
원인 1: 구성 파일이 없습니다.
컴퓨터에 구성 파일이 없습니다.
해결 방법: 자격 증명 저장
자격 증명을 저장하는 Azure CLI에서 명령을 실행 az aks get-credentials
하여 구성 파일을 로드합니다. 기본 위치를 사용하지 않으려면 구성 위치(예: ~/Dir1/Dir2/config 또는 C:\Dir1\Dir2\config)를 사용하여 매개 변수를 지정 --file <config-file-location>
합니다.
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에서 구성 매개 변수를 찾는 위치를 변경합니다.
구성 파일의
KUBECONFIG
현재 위치를 가리키도록 환경 변수를 수정합니다. 자세한 내용은 KUBECONFIG 환경 변수 설정을 참조 하세요.매개 변수를 사용하여 kubectl config 명령을 실행합니다
--kubeconfig=<config-file-location>
.
원인 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 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.