2

を実装するための認証私はGoogleの機械学習プラットフォーム、cloudMLに取り組んできました。ドッカーコンテナ - バケツ

ビッグ画像: 私はcloudMLのAPIと私のストレージバケットへのアクセスを持って、インスタンスを計算するGoogleで自分のドッキングウィンドウenvironment稼働を取得するためのクリーンな方法を把握しようとしています。ローカルで起動する

、私は私のサービスアカウントが

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と通信するためのスコープを設定する必要があります。

私は、コンピューティングインスタンスで(デバッグのため)そのインスタンスに

gcloud compute ssh [email protected] 

をsshをすることができ、私はGCRから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は私のインスタンスにそれらのファイルを渡しますか?

私は例えば、私がcloudML APIにリクエストを投稿することができ、より広範クラウドプラットフォームへのアクセス権を持っています。

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

成功しました。だから、いくつかの資格が渡されています。私はそれを計算エンジンに渡してから、計算エンジンからドッカーインスタンスに渡すことができると思いますか?私は意図したようにツールを使用していないように感じる。私はgcloudがローカルで認証されるとこれを処理すると思った。

+0

編集:明示的なスコープを追加する(cloudMLへの接続)第二の問題を解決するが、ドッキングウィンドウコンテナ – bw4sz

+2

内のバケットを取り付けていないこれが最も可能性が高いヒューズの問題、GCI、およびドッカーです。ドッキング・コンテナまたはホストVM内でgcifuseを実行しようとしていますか? 1つの問題は、特権モードでコンテナを起動しなかったことです。 dockerコマンドに--privilegedフラグを追加してみてください。ヒューズとGCIの問題に焦点を当てて質問を言い換えることもお勧めします。これは、適切な専門家の注意を引くのに役立ちます。 –

答えて

1

これは、ドッキングウィンドウの問題ではなく、のgcloudアクセス許可の問題でした。ヒューズがマウントできるようにするには、Dockerを--privilegedとして実行する必要があります。

関連する問題