计算引擎上的 google cloudML 的 Docker 容器 - 验证安装桶

2024-01-07

我一直在与谷歌的机器学习平台合作,cloudML.

大图: 我正在尝试找出最干净的方法来获取他们的码头工人环境 https://stackoverflow.com/questions/41605801/authenticate-google-cloud-service-account-on-docker-image在 Google 计算实例上启动并运行,可以访问 cloudML API 和我的存储桶。

从本地开始,我配置了我的服务帐户

C:\Program Files (x86)\Google\Cloud SDK>gcloud config list
Your active configuration is: [service]

[compute]
region = us-central1
zone = us-central1-a
[core]
account = [email protected] /cdn-cgi/l/email-protection
disable_usage_reporting = False
project = api-project-773889352370

我使用 google 容器镜像系列启动一个计算实例

gcloud compute instances create gci --image-family gci-stable --image-project google-containers --scopes [email protected] /cdn-cgi/l/email-protection="https://www.googleapis.com/auth/cloud-platform"

编辑:需要明确设置与 cloudML 通信的范围。

然后我可以 ssh 进入该实例(用于调试)

gcloud compute ssh benweinstein2010@gci 

在计算实例上,我可以从 GCR 中提取 cloudML docker 并运行它

docker pull gcr.io/cloud-datalab/datalab:local
docker run -it --rm  -p "127.0.0.1:8080:8080" \
  --entrypoint=/bin/bash \
  gcr.io/cloud-datalab/datalab:local

我可以确认我可以访问我想要的存储桶。那里没有凭证问题

root@cd6cc28a1c8a:/# gsutil ls gs://api-project-773889352370-ml
gs://api-project-773889352370-ml/Ben/
gs://api-project-773889352370-ml/Cameras/
gs://api-project-773889352370-ml/MeerkatReader/
gs://api-project-773889352370-ml/Prediction/
gs://api-project-773889352370-ml/TrainingData/
gs://api-project-773889352370-ml/cloudmldist/

但是当我尝试安装水桶时

root@139e775fcf6b:~# gcsfuse api-project-773889352370-ml /mnt/gcs-bucket
Using mount point: /mnt/gcs-bucket
Opening GCS connection...
Opening bucket...
Mounting file system...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running fusermount: exit status 1

stderr:
fusermount: failed to open /dev/fuse: Operation not permitted

一定是我需要从 docker 容器内激活我的服务帐户吗?我也遇到过类似的问题(未解决的问题别处 https://stackoverflow.com/questions/41605801/authenticate-google-cloud-service-account-on-docker-image)

gcloud auth activate-service-account

我可以向 docker 传递凭证 .json 文件,但我不确定 gcloud ssh 在哪里/是否将这些文件传递到我的实例?

我可以更广泛地访问云平台,例如我可以向 cloudML API 发布请求。

gcloud beta ml predict --model ${MODEL_NAME} --json-instances images/request.json > images/${outfile}

成功了。所以一些凭证正在被传递。我想我可以将它传递给计算引擎,然后从计算引擎传递给docker实例?感觉就像我没有按预期使用这些工具。我认为一旦我在本地进行身份验证,gcloud 就会处理这个问题。


这是一个 docker 问题,而不是 gcloud 权限问题。 Docker 需要以 --privileged 身份运行才能允许熔丝挂载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算引擎上的 google cloudML 的 Docker 容器 - 验证安装桶 的相关文章

随机推荐