从Kubernetes pod访问另一个群集

时间:2016-09-02 09:05:45

标签: jenkins kubernetes

我在GKE中运行jenkins。构建的一个步骤是使用kubectl来部署另一个群集。我在jenkins容器中安装了gcloud-sdk。有问题的构建步骤是这样做的:

gcloud auth activate-service-account --key-file /etc/secrets/google-service-account
gcloud config set project XXXX
gcloud config set account xxxx@xxx.iam.gserviceaccount.com
gcloud container clusters get-credentials ANOTHER_CLUSTER

但是我收到了这个错误(虽然它在本地工作正常):

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

注意:我注意到没有配置(〜/ .kube为空)我可以使用kubectl并访问当前正在运行pod的群集。 我不确定它是怎么做的,是否使用/var/run/secrets/kubernetes.io/serviceaccount/来访问集群

编辑:如果它还没有测试,但是将服务帐户添加到目标集群并在jenkins中使用它可能有效:

http://kubernetes.io/docs/admin/authentication/(搜索詹金斯)

1 个答案:

答案 0 :(得分:0)

请在此处查看此答案:kubectl oauth2 authentication with container engine fails

在执行gcloud auth activate-service-account --key-file /etc/secrets/google-service-account之前,您需要做的是将gcloud设置为旧的auth模式:

CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
gcloud config set container/use_client_certificate True

但是我没有成功使用其他env var:GOOGLE_APPLICATION_CREDENTIALS