Я работаю с платформой для обучения машинам Google, cloudML
.Контейнер докеров для google cloudML на вычислительном двигателе - аутентификация для монтажного ковша
Большая картинка: Я пытаюсь выяснить, как самый лучший способ доставить их докеры environment в операторы вычислений Google, получить доступ к облачному 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]
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]="https://www.googleapis.com/auth/cloud-platform"
EDIT: нужно явно установить область для общения с cloudML.
Затем я могу SSH в этом случае (для отладки)
gcloud compute ssh [email protected]
На вычислительном Например, я могу вытащить докер cloudML из ГКЛ и запустить его
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
Я могу подтвердить, у меня есть доступ к моему желаемому ковшу. Нет учетных данных проблем есть
[email protected]:/# 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/
Но когда я пытаюсь установить ведре
[email protected]:~# 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
Должно быть, я должен активировать учетную запись службы внутри контейнера Докер? У меня были подобные (нерешенные вопросы elsewhere)
gcloud auth activate-service-account
Я мог бы передать докер проверке полномочий .json файла, но я не уверен, где/если gcloud SSH передает эти файлы в моем случае?
У меня есть доступ к облачной платформе более широко, например, я могу отправить запрос в облачный API.
gcloud beta ml predict --model ${MODEL_NAME} --json-instances images/request.json > images/${outfile}
, который преуспевает. Поэтому некоторые учетные данные передаются. Думаю, я мог бы передать его, чтобы вычислить движок, а затем от вычислительного механизма до экземпляра докера? Похоже, я не использую инструменты по назначению. Я думал, что gcloud справится с этим, как только я аутентифицируюсь локально.
Редактирование: добавление явной области решает вторую проблему (подключение к cloudML), но не монтирование ведра внутри контейнера докера – bw4sz
Это, скорее всего, проблема с плавким предохранителем, GCI и Docker. Вы пытаетесь запустить gcifuse внутри контейнера докеров или на виртуальной машине хоста? Одна из проблем может заключаться в том, что вы не запускали контейнер в привилегированном режиме. Попробуйте добавить флаг --privileged в команду docker. Я также предлагаю перефразировать вопрос, чтобы сосредоточиться на проблемах с предохранителями и GCI. Это поможет привлечь внимание экспертов. –