2016-09-29 10 views
2

Im пытается получить kubectl работает на виртуальной машине. Я выполнил следующие шаги: here и может пройти через установку. Я скопировал локальную конфигурацию kubernetes (от /Users/me/.kube/config) к виртуальной машине в каталоге .kube. Однако, когда я запускаю любую команду, такую ​​как kubectl get nodes, она возвращает error: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more informationЗапуск kubectl на виртуальной машине

Есть ли способ, которым я могу запустить kubectl на виртуальной машине?

+0

Где находится ваш кластер? это GKE? Похоже, он ожидает, что вы выполните 'gcloud auth login'. –

+0

Вы можете «gcloud auth login» от VM, но это будет использовать вашу личную идентификацию для всех вызовов, сделанных с этой виртуальной машины. Безопаснее создавать учетную запись службы для программного доступа (например, если она когда-либо была скомпрометирована, вы можете просто отменить разрешения учетной записи службы). –

ответ

1

Чтобы использовать kubectl поговорить с кластером Google Container Engine в не Google VM, вы можете создать управляемые пользователями 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

Смежные вопросы