2016-09-29 10 views
2

VM에서 kubectl을 실행하려고합니다. 나는 here 주어진 단계를 따라 설치를 통해 갈 수 있습니다. 내 로컬 kubernetes config (/Users/me/.kube/config)를 .kube 디렉토리의 VM에 복사했습니다. 그러나 kubectl get nodes과 같은 명령을 실행할 때 error: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information가상 머신에서 kubectl 실행

VM에서 kubectl을 실행할 수있는 방법이 있습니까? Google 이외의 VM 구글 컨테이너 Engine 클러스터 얘기 kubectl를 사용하려면

+0

클러스터는 어디에서 호스팅됩니까? 그거야? 'gcloud auth login'을 기대하고있는 것 같습니다. –

+0

VM에서 'gcloud auth login'할 수는 있지만 해당 VM에서 작성한 모든 호출에 대해 개인 신원이 사용됩니다. 프로그래밍 방식 액세스를위한 서비스 계정을 만드는 것이 안전합니다 (예 : 서비스 계정의 권한을 취소 할 수 있음). –

답변

1

, 당신이 만들 수있는 사용자 관리 IAM Service Account 및 클러스터에 대한 인증 사용 : 다음

# Set these variables for your project 
PROJECT_ID=my-project 
SA_NAME=my-new-serviceaccount 
[email protected]$PROJECT_ID.iam.gserviceaccount.com 
KEY_FILE=~/serviceaccount_key.json 

# Create a new GCP IAM service account. 
gcloud iam service-accounts create $SA_NAME 

# Download a json key for that service account. 
gcloud iam service-accounts keys create $KEY_FILE --iam-account $SA_EMAIL 

# Give that service account the "Container Engine Developer" IAM role for your project. 
gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SA_EMAIL --role roles/container.developer 

# Configure Application Default Credentials (what kubectl uses) to use that service account. 
export GOOGLE_APPLICATION_CREDENTIALS=$KEY_FILE 

그리고 진행 평상시처럼 kubectl을 사용하십시오.

+0

'~/serviceaccount_key.json'은 어디에서 왔습니까? 편집 : API CONSOLE CREDENTIALS에서 발견 : https://developers.google.com/identity/protocols/application-default-credentials – Ash