【问题标题】:Google Cloud Jenkins gcloud push access deniedGoogle Cloud Jenkins gcloud 推送访问被拒绝
【发布时间】:2016-12-10 09:23:12
【问题描述】:

我正在尝试通过 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 小时内被困......我需要帮助

【问题讨论】:

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


    【解决方案1】:

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

    这可能是因为:

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

    【讨论】:

    • 我把我所有的项目都删了再做一次,但我觉得你的回答是对的。非常感谢
    • @CJ Cullen,我应该在 IAM 和管理员部分看到哪些必要的角色??
    【解决方案2】:

    基于上述@cj-cullen 的回答,您有两种选择:

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

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

    【讨论】:

      猜你喜欢
      • 2019-05-29
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 2018-01-18
      • 2017-01-12
      • 1970-01-01
      相关资源
      最近更新 更多