2016-09-29 15 views
2

kubectlをVM上で実行しようとしています。私は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を実行する方法はありますか?

+0

あなたのクラスタはどこにホストされていますか?それはGKEですか?あなたが 'gcloud auth login'をやろうと思っているようです。 –

+0

VMから「gcloud auth login」することはできますが、そのVMからのすべての呼び出しに対して個人識別情報が使用されます。プログラマティックアクセスのサービスアカウントを作成する方が安全です(たとえば、侵害された場合は、サービスアカウントの権限を取り消すだけです)。 –

答えて

1

Google以外のVMにGoogleのコンテナEngineクラスタに話をkubectlを使用するには、ユーザー管理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

関連する問題