はじめに
Kubernetesにおいて、ContextとNamespaceを簡単に切り替えることができるkubeswitchについて簡単に紹介したいと思います。
kubeswitchとは
kubeswitch
とは、kubectx
やkubie
などと同じようにKubernetesのContextを簡単に切り替えることができるツールです。
kubectx
については、下記を参考にしてください。

特徴
kubeswitch
は、下記のような特徴があります。
- ContextとNamespaceを切り替えられる
- 履歴から切り替えられる
- 大量のContextを効率よく検索できる
- ターミナルごとにContextを分けられる
- ContextにAliasを設定できる
- Gitのpre-commit hookのようなHooksが設定できる
kubectxとkubie
同じようなツールとして、kubectx
とkubie
があります。
私はもともとkubectx
を使っていたのですが、全てのターミナルで同じコンテキストを使うことになるので、ターミナルのウィンドウごとにContextを設定できるkubie
に移行しようとしてました。
しかし、いざkubie
を使ってみると、Contextのみを指定して切り替えた場合に、NamespaceがDefaultになってしまうため、Namespaceも指定して切り替える必要がありました。Issueとしては上がっているみたいですが、まだ対応はしていないようです。
そこで、ターミナルのウィンドウごとにContextを設定でき、Contextを切り替えるとNamespaceも切り替えてくれるkubeswitch
を使うことにしました。
インストール
brew
を使って、下記でインストールができます。
brew install danielfoehrkn/switch/switch
インストールが完了したら、下記を.bashrc
や.zshrx
に下記を追記します。
INSTALLATION_PATH=$(brew --prefix switch) && source $INSTALLATION_PATH/switch.sh
ちなみに、私はもともとkx
でkubectx
を使っていたので、下記のようにaliasを設定しました。
alias kx="switch"
使い方
簡単な使い方を紹介します。
コンテキストを変更する
switch
コマンドでContextの名前を検索して、Contextを変更することができます。
switch
Contextの名前を指定して、変更もできます。
switch <context name>
ターミナルのウィンドウごとにContextを使うことができます。
Namespaceを変更する
Namespaceだけを変える場合は、下記のコマンドを使います。
switch ns
履歴を確認する
switch h
下記コマンドで、最後に使っていたContextに変更できます。
switch .
下記のコマンドだと、履歴の1つ前のContextに変更できます。
switch -
エイリアスを設定する
Contextにエイリアスを設定することができます。
下記のコマンドでエイリアスを設定できます。
switch alias <alias>=<context name>
設定したエイリアスを確認するには、下記のコマンドを使います。
switch alias ls
設定したエイリアスを削除する場合は、下記のコマンドです。
switch alias rm <alias>