谷歌云詹金斯gcloud推送访问被拒绝

时间:2016-08-04 09:59:15

标签: jenkins kubernetes google-cloud-platform google-kubernetes-engine

我试图通过Jenkins将图像推送到容器存储库。它起初工作,但现在,我得到了拒绝访问"

docker -- push gcr.io/xxxxxxx-yyyyy-138623/myApp:master.1
The push refers to a repository [gcr.io/xxxxxxx-yyyyy-138623/myApp]
bdc3ba7fdb96: Preparing
5632c278a6dc: Waiting
denied: Access denied.

Jenkins文件看起来像:

  sh("gcloud docker --authorize-only")
  sh("docker -- push gcr.io/xxxxxxx-yyyyy-138623/hotelpro4u:master.1")

说明:

我被困12小时......我需要帮助

2 个答案:

答案 0 :(得分:3)

该错误意味着GKE节点无权推送到支持您的存储库的GCS存储桶。

这可能是因为:

  1. 群集没有正确的范围来向GCS进行身份验证。您是否使用--scopes storage-rw创建了群集?
  2. 群集正在运行的服务帐户没有对存储区的权限。检查项目的IAM & Admin section以确保服务帐户具有必要的角色。

答案 1 :(得分:0)

基于@ cj-cullen上面的回答,你有两个选择:

  1. 销毁节点池,然后从CLI中重新创建,并删除https://www.googleapis.com/auth/projecthosting,storage-rw范围。从控制台创建节点池时,GKE控制台无法更改默认范围。

  2. 停止群集中的每个实例。在控制台中,单击实例的编辑按钮。您现在应该可以添加适当的https://www.googleapis.com/auth/projecthosting,storage-rw范围。