概要
- gcloudコマンドを使えるようになるまで
- gcloudコマンドを使ってGKEに接続できるようになるまで
環境
- Win10 Pro
- WSL2 Ubuntu 20.04
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をインストールする
- 公式を読みました
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のインストールが必要って言われます
$ 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