我正在尝试设置一个持续集成作业,该作业将从Jenkins作业部署到kubernetes / google容器引擎 . jenkins服务器受到相对严格的控制,因此我无法安装插件 .
我有一个来自Google Cloud IAM的服务器帐户的JSON密钥文件 .
我正在尝试从那里下载google cloud sdk和auth,但我没有运气(如果来自Jenkinsfile):
sh 'export KUBECONFIG=$(pwd)/.kubeconfig'
sh 'export GOOGLE_APPLICATION_CREDENTIALS=$JSON'
sh 'google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=$JSON'
sh 'google-cloud-sdk/bin/gcloud config set core/project proj-1'
sh 'google-cloud-sdk/bin/gcloud container clusters list'
sh 'google-cloud-sdk/bin/gcloud container clusters get-credentials clust-1 --zone us-east1-c'
sh 'kubectl get pods'
我收到错误消息:错误:谷歌:找不到默认凭据 . 有关更多信息,请参见https://developers.google.com/accounts/docs/application-default-credentials . 我还需要能够进行gcloud docker push,所以使用gcloud是可以的 .
1 回答
这个行为有一个神秘的github问题:
https://github.com/kubernetes/kubernetes/issues/30617
根据那个问题,我一直在做的一切都应该有效:
我正在使用GOOGLE_APPLICATION_CREDENTIALS变量,但唉,无法正常工作 . 我在上面尝试了“gcloud config set”选项,但这也没有用 . 最后,我使用了env变量CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFCIATE,实际上最终确实有效 .