2016-09-02 10 views
2

私はGKEでジェンキンズを実行しています。ビルドのステップは、kubectlを使用して別のクラスタを展開しています。私はgcloud-sdkをjenkinsコンテナにインストールしました。Kubernetesポッドから別のクラスタにアクセスする

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

注:私は〜(全く設定していることに気づいた私は、このエラーを(にもかかわらず、ローカル期待どおりに動作します)を取得しかし

gcloud auth activate-service-account --key-file /etc/secrets/google-service-account 
gcloud config set project XXXX 
gcloud config set account [email protected] 
gcloud container clusters get-credentials ANOTHER_CLUSTER 

:問題のビルドのステップは、この行います/ kube is empty)kubectlを使用して、現在ポッドが実行されているクラスタにアクセスできます。 どうすればよいか分かりません。クラスタにアクセスするには、/var/run/secrets/kubernetes.io/serviceaccount/を使用しますか?

EDIT:まだ動作していますが、サービスアカウントを追加する対象クラスタとジェンキンスに働くかもしれないことを使用して:

http://kubernetes.io/docs/admin/authentication/(検索ジェンキンス)

+0

を、あなたは '取得-credentials'はどんなkubeconfigを生成しなかった理由を理解しようとしていましたか?サービスアカウントは機能しますが、引き続き資格情報をJenkinsのkubeconfigファイルに手動でプッシュする必要があります。 –

+0

しかし、kubernetes v1.3.5の新しいバージョンでは、まだOAUTHのすべてのことをやる必要があるようです。だからそれはバージョンの問題です。 –

答えて

0

ここでこの答えを参照してください:あなたはgcloud auth activate-service-account --key-file /etc/secrets/google-service-accountを行う前に実行する必要がどのようなkubectl oauth2 authentication with container engine fails

を古いモードにのgcloudを設定することです認証:

CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True 
gcloud config set container/use_client_certificate True 

私は他のenv VAR使っしかしsuccededしていない:GOOGLE_APPLICATION_CREDENTIALS