Google cloud platform 如何使用Google容器注册表

Google cloud platform 如何使用Google容器注册表,google-cloud-platform,docker-registry,google-kubernetes-engine,google-container-registry,Google Cloud Platform,Docker Registry,Google Kubernetes Engine,Google Container Registry,我试图使用谷歌容器注册,但它不适合我 我写了下面的containers.yaml 我设置了以下acl权限 # gsutil acl ch -r -u <project-number>@developer.gserviceaccount.com:R gs://asia.artifacts.<project-id>.appspot.com 但当docker从Google容器注册表中提取图像时,访问被拒绝 # docker pull asia.gcr.io/<proj

我试图使用谷歌容器注册,但它不适合我

我写了下面的containers.yaml

我设置了以下acl权限

# gsutil acl ch -r -u <project-number>@developer.gserviceaccount.com:R gs://asia.artifacts.<project-id>.appspot.com
但当docker从Google容器注册表中提取图像时,访问被拒绝

#  docker pull asia.gcr.io/<project-id>.a/amazonssh
Pulling repository asia.gcr.io/<project-id>.a/amazonssh
FATA[0000] Error: Status 403 trying to pull repository <project-id>/amazonssh: "Access denied."

您能否从实例中验证您是否可以从Google云存储桶中读取数据?这可以通过以下方式进行验证:

$ curl -H 'Metadata-Flavor: Google' $SVC_ACCT/scopes
...
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/devstorage.read_only
...
如果是,请尝试:

在Google Compute Engine上,您可以在不使用gcloud的情况下使用以下功能登录:

$ METADATA=http://metadata.google.internal./computeMetadata/v1
$ SVC_ACCT=$METADATA/instance/service-accounts/default
$ ACCESS_TOKEN=$(curl -H 'Metadata-Flavor: Google' $SVC_ACCT/token \
    | cut -d'"' -f 4)
$ docker login -e not@val.id -u _token -p $ACCESS_TOKEN https://gcr.io

然后再次尝试docker pull命令。

您能否从实例中验证是否可以从Google云存储桶中读取数据?这可以通过以下方式进行验证:

$ curl -H 'Metadata-Flavor: Google' $SVC_ACCT/scopes
...
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/devstorage.read_only
...
如果是,请尝试:

在Google Compute Engine上,您可以在不使用gcloud的情况下使用以下功能登录:

$ METADATA=http://metadata.google.internal./computeMetadata/v1
$ SVC_ACCT=$METADATA/instance/service-accounts/default
$ ACCESS_TOKEN=$(curl -H 'Metadata-Flavor: Google' $SVC_ACCT/token \
    | cut -d'"' -f 4)
$ docker login -e not@val.id -u _token -p $ACCESS_TOKEN https://gcr.io
然后再次尝试docker pull命令。

此处有一个额外的.a项目id,不确定是否以这种方式运行该命令

docker pull asia.gcr.io/<project-id>.a/amazonssh
容器vm有一个cron作业,以root身份运行gcloud docker-a,因此您应该能够以root身份进行docker-pull

启动容器vm Docker containers的kubelet还了解如何通过GCR进行本机身份验证,因此它应该可以正常工作

请随时联系gcr的我们-contact@google.com. 如果您可以包含项目id,可能还包括容器vm中的/var/log/kubelet.log,这将非常有用。

您在这里有一个额外的.a项目id,不确定您是否以这种方式运行该命令

docker pull asia.gcr.io/<project-id>.a/amazonssh
容器vm有一个cron作业,以root身份运行gcloud docker-a,因此您应该能够以root身份进行docker-pull

启动容器vm Docker containers的kubelet还了解如何通过GCR进行本机身份验证,因此它应该可以正常工作

请随时联系gcr的我们-contact@google.com. 如果您可以包含您的项目id,可能还包括容器vm中的/var/log/kubelet.log,这将非常有用