Ubuntu18.04の標準レポジトリでは、Google-Cloud-SDKのバージョンは最新ではありません。このためGCPに保存したDockerイメージを実行する際に認証エラーなどが生じます。回避策は提示されていますが、最新版ではKubernetes関連コマンドなども標準装備なので最新版をインストールした方が賢明なようです。
標準レポジトリバージョン
$ gcloud -v
Google Cloud SDK 212.0.0
alpha 2018.08.13
beta 2018.08.13
bq 2.0.34
core 2018.08.13
gsutil 4.33
GCPのVMインスタンスにUbuntuなどのLinuxOSをインストールした場合は、最新版のGoogle-Cloud-SDKがインストールされているようです。
最新版(GCP:VMインスタンスUbuntu18.04)
$ gcloud -v
Google Cloud SDK 250.0.0
alpha 2019.06.07
beta 2019.06.07
bq 2.0.43
core 2019.06.07
gsutil 4.38
kubectl 2019.06.07
クライアントUbuntu18.04端末にも最新のSDKをインストールします。
1.正しく配布されるように、環境変数を作成
$ export CLOUD_SDK_REPO=“cloud-sdk-$(lsb_release -c -s)”
2. Cloud SDKの配布URIをパッケージソースとして追加
$ echo “deb Index of /apt// $CLOUD_SDK_REPO main” | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
注: すでに apt-transport-https をインストールしている場合は、この手順で「http」の代わりに「https」を使用できます。
3. Google Cloudの公開鍵をインポート
$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
トラブルシューティングのヒント: 鍵が期限切れで最新バージョンを取得できない場合は、最新の apt-get.gpg キーファイルを取得してください。
4. Cloud SDKを更新してインストール
$ sudo apt-get update && sudo apt-get install google-cloud-sdk
追加コンポーネント
google-cloud-sdk-app-engine-python
google-cloud-sdk-app-engine-python-extras
google-cloud-sdk-app-engine-java
google-cloud-sdk-app-engine-go
google-cloud-sdk-datalab
google-cloud-sdk-datastore-emulator
google-cloud-sdk-pubsub-emulator
google-cloud-sdk-cbt
google-cloud-sdk-cloud-build-local
google-cloud-sdk-bigtable-emulator
注: APT や yum
などのパッケージ マネージャーを使用して Cloud SDK をインストールしている場合、Cloud SDK コンポーネント マネージャーが無効になるため、これらの操作を行うことは できません 。代わりに、こちらのパッケージを使用してください。
aptにてパッケージをインストールしたため、次のgcloudコマンドによるコンポーネントの管理はできないようです。コンポーネントのインストールは指示通りaptパッケージとして別途インストールする必要があります。
Cloud SDK コンポーネント |
APT パッケージ |
YUM パッケージ |
app-engine-go |
google-cloud-sdk-app-engine-go |
google-cloud-sdk-app-engine-go |
app-engine-java |
google-cloud-sdk-app-engine-java |
google-cloud-sdk-app-engine-java |
app-engine-python |
google-cloud-sdk-app-engine-python |
google-cloud-sdk-app-engine-python |
bigtable |
google-cloud-sdk-bigtable-emulator |
google-cloud-sdk-bigtable-emulator |
cbt |
google-cloud-sdk-cbt |
google-cloud-sdk-cbt |
cloud-build-local |
google-cloud-sdk-cloud-build-local |
google-cloud-sdk-cloud-build-local |
datalab |
google-cloud-sdk-datalab |
google-cloud-sdk-datalab |
docker-credential-gcr |
まだ提供されていません。 |
まだ提供されていません。 |
gcd-emulator |
google-cloud-sdk-datastore-emulator |
google-cloud-sdk-datastore-emulator |
kubectl |
kubectl |
kubectl |
pubsub-emulator |
google-cloud-sdk-pubsub-emulator |
google-cloud-sdk-pubsub-emulator |
gcloudコンポーネント
注) gcloudコンポーネントコマンドが使用できるのはtarアーカイブファイルをダウンロードしてシェルスクリプトによりインストールした場合に限られるようです。
各コンポーネントのステータスを以下コマンドで確認し、必要であれば各コンポーネントのアップデート、追加インストールをして下さい。
https://cloud.google.com/sdk/gcloud/reference/components/install
$ gcloud components list
Your current Cloud SDK version is: 251.0.0
The latest available version is: 251.0.0
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Components │
├───────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│ Status │ Name │ ID │ Size │
├───────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Not Installed │ App Engine Go Extensions │ app-engine-go │ 56.6 MiB │
│ Not Installed │ Cloud Bigtable Command Line Tool │ cbt │ 6.4 MiB │
│ Not Installed │ Cloud Bigtable Emulator │ bigtable │ 6.6 MiB │
│ Not Installed │ Cloud Datalab Command Line Tool │ datalab │ < 1 MiB │
│ Not Installed │ Cloud Datastore Emulator │ cloud-datastore-emulator │ 18.4 MiB │
│ Not Installed │ Cloud Datastore Emulator (Legacy) │ gcd-emulator │ 38.1 MiB │
│ Not Installed │ Cloud Firestore Emulator │ cloud-firestore-emulator │ 40.8 MiB │
│ Not Installed │ Cloud Pub/Sub Emulator │ pubsub-emulator │ 34.8 MiB │
│ Not Installed │ Cloud SQL Proxy │ cloud_sql_proxy │ 3.8 MiB │
│ Not Installed │ Emulator Reverse Proxy │ emulator-reverse-proxy │ 14.5 MiB │
│ Not Installed │ Google Cloud Build Local Builder │ cloud-build-local │ 6.0 MiB │
│ Not Installed │ Google Container Registry's Docker credential helper │ docker-credential-gcr │ 1.8 MiB │
│ Not Installed │ gcloud app Java Extensions │ app-engine-java │ 103.3 MiB │
│ Not Installed │ gcloud app PHP Extensions │ app-engine-php │ │
│ Not Installed │ gcloud app Python Extensions │ app-engine-python │ 6.0 MiB │
│ Not Installed │ gcloud app Python Extensions (Extra Libraries) │ app-engine-python-extras │ 28.5 MiB │
│ Installed │ BigQuery Command Line Tool │ bq │ < 1 MiB │
│ Installed │ Cloud SDK Core Libraries │ core │ 10.8 MiB │
│ Installed │ Cloud Storage Command Line Tool │ gsutil │ 3.8 MiB │
│ Installed │ gcloud Alpha Commands │ alpha │ < 1 MiB │
│ Installed │ gcloud Beta Commands │ beta │ < 1 MiB │
│ Installed │ kubectl │ kubectl │ < 1 MiB │
└───────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘
To install or remove components at your current SDK version [251.0.0], run:
$ gcloud components install COMPONENT_ID
$ gcloud components remove COMPONENT_ID
To update your SDK installation to the latest version [251.0.0], run:
$ gcloud components update
Ubuntu 20.04ローカルマシンへのSDKインストール
Cloud SDK の配布 URI をパッケージ ソースとして追加します。使用しているディストリビューションで signed-by オプションがサポートされている場合は、次のコマンドを実行します。
$ echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
Google Cloud の公開鍵をインポートします。使用しているディストリビューションの apt-key
コマンドが --keyring
引数をサポートしている場合は、次のコマンドを実行します。
$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
Cloud SDK を更新してインストール
$ sudo apt-get update && sudo apt-get install google-cloud-sdk
gcloud init
を実行して開始します。
$ gcloud init
gcloud init
を実行することで、gcloudとグーグルアカウント、GCPプロジェクトとの紐づけが行われます。デフォルトのリージョンは居住地ではなく、無料枠が適用されるリージョンを指定しています。
Choose the account you would like to use to perform operations for this configuration:
[1] [email protected]
[2] Log in with a new account
Please enter your numeric choice: 1
You are logged in as: [[email protected]].
Pick cloud project to use:
[1] project-name
[2] Create a new project
Please enter numeric choice or text value (must exactly match list item): 1
Your current project has been set to: [project-name].
Do you want to configure a default Compute Region and Zone? (Y/n)? y
Which Google Compute Engine zone would you like to use as project default?
If you do not specify a zone via a command line flag while working with Compute Engine resources, the default is
assumed.
[1] us-east1-b
[2] us-east1-c
[3] us-east1-d
[4] us-east4-c
[5] us-east4-b
[6] us-east4-a
[7] us-central1-c
[8] us-central1-a
[9] us-central1-f
[10] us-central1-b
[11] us-west1-b
[12] us-west1-c
[13] us-west1-a
[14] europe-west4-a
[15] europe-west4-b
[16] europe-west4-c
[17] europe-west1-b
[18] europe-west1-d
[19] europe-west1-c
[20] europe-west3-c
[21] europe-west3-a
[22] europe-west3-b
[23] europe-west2-c
[24] europe-west2-b
[25] europe-west2-a
[26] asia-east1-b
[27] asia-east1-a
[28] asia-east1-c
[29] asia-southeast1-b
[30] asia-southeast1-a
[31] asia-southeast1-c
[32] asia-northeast1-b
[33] asia-northeast1-c
[34] asia-northeast1-a
[35] asia-south1-c
[36] asia-south1-b
[37] asia-south1-a
[38] australia-southeast1-b
[39] australia-southeast1-c
[40] australia-southeast1-a
[41] southamerica-east1-b
[42] southamerica-east1-c
[43] southamerica-east1-a
[44] asia-east2-a
[45] asia-east2-b
[46] asia-east2-c
[47] asia-northeast2-a
[48] asia-northeast2-b
[49] asia-northeast2-c
[50] asia-northeast3-a
Did not print [39] options.
Too many options [89]. Enter "list" at prompt to print choices fully.
Please enter numeric choice or text value (must exactly match list item): 11