はじめに
GKE/kubernetes上でサービスを立てる事が増えてきました。
必然的に GCP プロジェクトの数や GKEクラスタ/ kubernetes ネームスペースの数など、
増えてきており、デプロイやオペレーションする上で
どのクラスタの、どのネームスペースに、何をapplyしようとしてるのか
をしっかり意識しないと事故れます。
この辺りは、 spinnaker が主流のCDツールだと思うのですが、
未だ手動で kubectl apply
せざるを得ない場面がまぁまぁ、あります。
覚えたての k8s/gke でうぇーい ってなってたのに、間違えてproductionへapplyしちゃった とかでモチべが下がっても勿体ないです><
と言う事で、少しでも開発や運用をいい感じにして入れるツールや自身の環境などを紹介します。
自分はどこに居るのか
そして、何のために生まれてきたのか。もとい
本番(prod)/ 開発(dev)等の分離を、GKE Cluster
, NameSpace
, はたまた GCP Project
と言った単位で分離しているケースがあると思います。
jonmosco/kube-ps1 がいい感じらしいです、なので導入する。以上
でいいと思いますが、自分はちょっと重い?のと、シンプルで中身を理解しておきたいタイプなので
まず、 gcpプロジェクト と gke cluster を取得するコマンドを準備しました。
で ~/.bashrc
とかに以下を追記
GET_GCP_PRJ=$(gcp-prj)
GET_GKE_CLUSTER=$(gke-cluster)
PS1='\[\033[32m\]'
PS1="$PS1""$GET_GCP_PRJ"
PS1="$PS1"'@ '
PS1="$PS1"'\[\033[35m\]'
PS1="$PS1""$GET_GKE_CLUSTER"
PS1="$PS1"'\[\033[33m\]'
PS1="$PS1"'\w '
PS1="$PS1"'\[\033[0m\]'
PS1="$PS1"'\$ '
これで取りあえず、以下 の様にプロンプトに表示はされます。続く
※VSCodeでGit bash使用。
GCPプロジェクトの切替え
こちらが切替 コマンド です。そして peco をかませてみました。
※fzfでもいいと思います。試してないです…
GKEクラスタの切替え
ahmetb/kubectx がいい感じっぽそうでした。
自分には使いこなせなそう…だったので、単純な切替のみ にしました。同様にpecoかませてます。
同様にネームスペースの 切替え です。
まとめ
プロンプト長いの好きくないので、あんまり使ってないですw
開発期間中とかガンガンdeployしたりする場合は、シェル環境やターミナルを
何かしら整えないと辛いと思いますので、一助になれば幸いです。
参考にしたサイト
ahmetb/kubectx
ocadaruma/zsh-gcloud-prompt
superbrothers/zsh-kubectl-prompt