GCP:最新版Google-Cloud-SDKのインストール

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

https://cloud.google.com/sdk/docs/components

注: 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/docs/quickstart-linux

各コンポーネントのステータスを以下コマンドで確認し、必要であれば各コンポーネントのアップデート、追加インストールをして下さい。

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] user_name@gmail.com
 [2] Log in with a new account
Please enter your numeric choice:  1

You are logged in as: [user_name@gmail.com].

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