GCPのインストール+GKEへの接続

概要

  • gcloudコマンドを使えるようになるまで
  • gcloudコマンドを使ってGKEに接続できるようになるまで

環境

gcloudコマンドを使えるようになるまで

今までGCPをそもそもほとんど触ったことがなく、さらにCLIからGCPを操作したことがありませんでした。 ついにやる機会が来たのでやってみましたが、すごい大変だったので、メモを残します

gcloudインストールまでの道のり

  • python3.8をインストールする
    • 3.8じゃないといけないのかわからないが、3.9をイキって入れたら動かなかった
    • asdfで入れたかったけど無理だったから普通にaptで入れた
  • python3のパスじゃダメなので、pythonのパスを通す
  • gcloudをインストールする
    • イキってasdfで入れたかったけど無理だったから普通に入れた

1. python3.8インストール

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8

2. python3のパスじゃダメなので、pythonのパスを通す

zsh使っているので、~/.zshrcに以下を追加

# alias
alias python='python3'

3. gcloudをインストールする

  • 公式を読みました

cloud.google.com

signed-by オプションとか、--keyringとか聞いたことなかった

sudo apt-get install apt-transport-https ca-certificates gnupg

# 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

# --keying
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# install
sudo apt-get update && sudo apt-get install google-cloud-sdk

これでgcloudのインストールは完了

gcloudコマンドを使ってGKEに接続できるようになるまで

gcloudコマンドでのログイン

gcloudのCLIからGCPに対してアクセスができるように認証をする必要があります。 aws configure的なやつです。

方法は2種類あるようで、

gcloud auth login
gcloud init

のどちらかっぽいですが、gcloud auth loginで実施しました。

gcloud auth login実施すると、CLI上にGCPのログイン用のURLが表示されるので、そのURLをクリックしブラウザでログインします(目当てのアカウントでログイン) ログインしたらなんかハッシュキーみたいなのが表示されるんで、それをCLI上にコピペしてDoneです。

gcloudのプロファイルの確認

AWSでいうところのaws sts get-caller-identity的なのがやりたくて。 それは以下

$ gcloud auth list
     Credentialed Accounts
ACTIVE  ACCOUNT
*       hogehoge@example.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

こんな風に出ます。 どうやらアカウントを切り替えるには$ gcloud config set account ACCOUNTってやるようですね

GKEへの接続

※GKEへ接続する際、もしかしたらpluginのインストールが必要って言われます

cloud.google.com

$ gke-gcloud-auth-plugin --version

これでバージョンが正しく出力されたらいいらしいですが、出なかったらインストール。

$   gcloud components install gke-gcloud-auth-plugin

GKEへ接続しますが、まずはGKEのクラスタ一覧を表示

$ gcloud container clusters list --project my-project
NAME               LOCATION           MASTER_VERSION   MASTER_IP       MACHINE_TYPE   NODE_VERSION     NUM_NODES  STATUS
my-cluster        asia-northeast1-a  ~~~

みたいなのが出ます。my-clusterへつなぎたい。

$ gcloud container clusters get-credentials my-cluster --zone=asia-northeast1-a --project my-project

これがうまくいけば、ローカルの~/.kube/configにクレデンシャルが記載されて接続が可能に。 以下はkubectlを使ってアクセスです

$ kubectl config get-contexts

これで想定のクラスタ(my-cluster)が表示されていればOK