Kubernetes のコンテキスト切り替えに kubectx、ネームスペース切り替えに kubens
Kubernetes の作業がやりやすくなるコマンドを見つけたので紹介。
目次
kubectx と kubens
今回紹介する kubectx
と kubens
という2つのコマンドは、まとめて一つのパッケージとして配布されている。
Homebrew などでインストールできる。
$ brew install kubectx
# → kubectx と kubens の2つがインストールできる
このあとのそれぞれの解説を読んで、どちらかを使ってみたいと思ったら上のコマンドで2つまとめてインストールしよう。
kubectx : コンテキストを切り替える
Kubernetes の接続先を管理する方法として、コンテキストという単位で接続情報に名前を付けておく方法がある。通常は
$ kubectl config use-context 【Context 名】
といったコマンドでコンテキストを切り替えられるが、コレを簡単に行えるコマンドとして kubectx
というコマンドがあった。
# 指定のコンテキストに切り替える
$ kubectx HOGE
# 一つ前に選択していたコンテキストに戻る
$ kubectx -
こんな感じでコマンドが短く実行できる。Tab 補完や fzf
との連携もできるようだ。
…残念ながら、自分は KubeConfig ファイルを分けて export KUBECONFIG
で切り替える方式が、多少手間でも事故がなくて良いと思っているので、コンテキスト切り替えは使わないのだが…。
kubens : ネームスペースを切り替える
そんな自分でも便利だと思ったのは、ネームスペースの切り替えを容易にする kubens
コマンドだ。
通常、Namespace を切り替えるのは若干手間なので、--namespace
(-n
) オプションを使うことが多い。
$ kubectl get pod --namespace=hoge
接続中のコンテキストのデフォルト・ネームスペースを永続的に切り替えるには、次のように叩く必要がある。
$ kubectl config set-context $(kubectl config current-context) --namespace=hoge
コンテキスト切り替えの中でネームスペースも指定する、という形だ。
ココで kubens
を使うと、次のように叩くだけで良い。
# ネームスペースを確認する
$ kubens
# 切り替える
$ kubens hoge
とても簡単だ。
以上
kubectl logs
の拡張版といえる k8stail
もお気に入りでよく使っているが、コレからは kubens
もその仲間に加えるとしよう〜。