web-dev-qa-db-ja.com

GCPの「gcloudauthconfigure-docker」VM Ubuntuのインスタンスが正しくセットアップされていませんか?

Ubuntu18.10を使用してGCP上にVMインスタンスを作成しました。SSHでVMを変更せずに、次のことを試してください。

gcloud info

警告が表示されました:

System PATH: [/snap/google-cloud-sdk/66/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game
s:/snap/bin]
Python PATH: [/snap/google-cloud-sdk/66/lib/third_party:/snap/google-cloud-sdk/66/lib:/snap/google-cloud-sdk/66/usr/lib/python2.7/:/snap
/google-cloud-sdk/66/usr/lib/python2.7/plat-x86_64-linux-gnu:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-tk:/snap/google-cloud-sdk/6
6/usr/lib/python2.7/lib-old:/snap/google-cloud-sdk/66/usr/lib/python2.7/lib-dynload]
Cloud SDK on PATH: [False]
Kubectl on PATH: [False]
WARNING: There are old versions of the Google Cloud Platform tools on your system PATH.
  /usr/bin/snap

次のコマンドで認証しようとすると:

Sudo gcloud auth configure-docker

そうですか:

WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
WARNING: `docker` not in the system PATH.
`docker` and `docker-credential-gcloud` need to be in same PATH in order to work correctly together.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
The following settings will be added to your Docker config file 

ごく最近のバージョンのgcloudがインストールされているようです。

Sudo gcloud version

Google Cloud SDK 230.0.0
alpha 2019.01.11
beta 2019.01.11
bq 2.0.39
core 2019.01.11
gsutil 4.35
kubectl 2019.01.11

そのようなインスタンスでgcloudを更新することは許可されていないようです。

次に、Dockerをインストールし、Dockerイメージをプルしました。

Sudo snap install docker
Sudo docker pull tensorflow/serving

これは正常に機能しています。問題は、GCPコンテナレジストリにイメージをプッシュできないことです。

Sudo docker tag tensorflow/serving gcr.io/xxx/tf-serving
Sudo docker Push gcr.io/xxx/tf-serving
Unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request
st, follow the steps in https://cloud.google.com/container-registry/docs/advanced-authentication

リンクでは、実行する必要があると説明されています。

Sudo gcloud auth configure-docker

問題を解決するにはどうすればよいですか?この問題は、VM?

WARNING: `docker-credential-gcloud` not in system PATH.

DockerHubにイメージを問題なくプッシュできます。

Google-cloud-sdkを再インストールしようとしました:

Sudo apt-get update && Sudo apt-get install google-cloud-sdk

しかし今、私は使用する必要があります:

Sudo gcloud alpha auth configure-docker

そして最後に私はまだ画像をプッシュすることができません。

これは、いくつかのパスの問題に関連しているようです。

Cloud SDK on PATH: [False]
Kubectl on PATH: [False]
WARNING: There are old versions of the Google Cloud Platform tools on your system PATH.
  /usr/bin/snap

何か案が? GCPのドキュメントを段階的に実行しました。また、GCP IAMを調べて、バケットへのアクセスを許可します。

私はGCPとクラウドを初めて使用するので、おそらく明らかな何かが欠けています。ちなみに、シェルスクリプトを使用してDockerイメージを構築する必要があるため、このようなタイプのVMを使用する必要があります。これは、他のVM多くのものがすでにプリインストールされており、「noexec」フラグが付けられています。

4

これが現在機能しているものです(Googleの助けに感謝します)

セットアップ:

  • Ubuntu 18.10(GNU/Linux 4.18.0-1005-gcp x86_64)を選択します
    20GBのディスクを追加+ httpとhttpを許可
    各APIのアクセスを設定->ストレージ:読み取り/書き込み
  • Sudoスナップ削除google-cloud-sdk
  • curl https://sdk.cloud.google.com | bash
  • vMに再接続します
  • dockerをインストールします https://docs.docker.com/install/linux/docker-ce/ubuntu/
    Sudo apt-get remove docker docker-engine docker.io containerd runc
    Sudo apt-get update
    Sudo apt-get install \
    apt-transport-https \
    ca-証明書\
    curl \
    gnupg-agent \
    software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | Sudo apt-keyadd-
    Sudo add-apt-repository \
    "deb [Arch = AMD64] https://download.docker.com/linux/ubunt \
    $(lsb_release -cs)\
    安定している」
    Sudo apt-get update
    Sudo apt-get install docker-ce docker-ce-cli containerd.io
    Sudo docker run hello-world#test
  • Sudo usermod -a -G docker LOGIN
  • vMに再接続します
  • gcloud auth configure-docker

gCPでのDockerプル/プッシュのテスト

  • dockerプルテンソルフロー/サービング
  • docker tag tensorflow/serving gcr.io/BUCKET_NAME/tf-serving
  • docker Push gcr.io/BUCKET_NAME/tf-serving
    (VMの作成時に書き込みアクセスを許可しない場合:「gcloudauthlogin」を使用してください)

今これは動作します

1

問題は、snapインストールである可能性があります。システムから/snap/google-cloud-sdkを削除するだけです。または、which gcloudをチェックして、どれが使用されているかを確認します。 apt バージョンではこれらのDockerパッケージを利用できないようです-また、$PATHにはそのsnapバージョンのみがリストされています。

通常、コンポーネントは次のように更新できます。

gcloud components update

またはリストされている:

gcloud components list

またはインストール済み:

gcloud components install docker-credential-gcr 

スタンドアロンバージョンを次のようにインストールすることをお勧めします。

curl https://sdk.cloud.google.com | bash

snapおよびaptバージョンを、ファイルシステムおよび$PATHから削除した後。

0
Martin Zeitler