gci 上的 GKE 1.4.5(master 和 nodes)无法访问云存储

GKE 1.4.5 (master and nodes) on gci cannot access cloud storage

我正在尝试将我们的 GKE 集群 (运行 1.4.5) 从 container-vm 迁移到 gci。 我正在 https://cloud.google.com/container-engine/docs/node-image-migration

使用迁移指南

当我在 gci 节点上部署时,我无法访问云存储,我使用 google-cloud java 0.5.0 库(与 0.4.0 相同的问题);我得到的错误是权限不足,container-vm节点上没有问题。

这是我的集群权限:

User info                  Enabled
Compute                    Read Write
Storage                    Read Write
Task queue                 Enabled
BigQuery                   Enabled
Cloud SQL                  Enabled
Cloud Datastore            Enabled
Stackdriver Logging API    Full
Stackdriver Monitoring API Full
Cloud Platform            Enabled
Bigtable Data             Read Write
Bigtable Admin            Full
Cloud Pub/Sub             Enabled
Service Control           Enabled
Service Management        Read Write
Stackdriver Trace         Disabled
Cloud Source Repositories Disabled

这是我得到的错误:

com.google.cloud.storage.StorageException: Insufficient Permission
at com.google.cloud.storage.spi.DefaultStorageRpc.translate(DefaultStorageRpc.java:202) ~[google-cloud-storage-0.5.0.jar:0.5.0]
at com.google.cloud.storage.spi.DefaultStorageRpc.create(DefaultStorageRpc.java:253) ~[google-cloud-storage-0.5.0.jar:0.5.0]
...
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    {
       "code" : 403,
       "errors" : [ {
         "domain" : "global",
         "message" : "Insufficient Permission",
         "reason" : "insufficientPermissions"
       } ],
       "message" : "Insufficient Permission"
    }

我相信您已经通过 Web UI(云控制台)创建了新的节点池。如果是这样,这是一个已知的 UI 问题,您无法选择为新节点池指定范围。工程团队已经意识到这个限制并正在努力修复。话虽如此,如果未指定范围,则默认范围将用于新节点池。解决方法是使用 gcloud upgrade command with the gci image type or you can use gcloud to create the node pools and provide the necessary scopes for them as mentioned here.

升级集群