
kubectlのcontextとnamespace周りの操作をkubectxとkubensでちょっと楽する
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
k8sを使い始めて、kubectlコマンドばかり打っている毎日です。その中でちょっと面倒だなと感じていた点がふたつ。
- contextまわりのコマンドが覚えられない (
kubectl get contextsとかやってしまう) - namespaceの指定(
-n hogehogeもしくは--namespace hogehoge)を毎コマンドごとにするのが面倒
これらの煩わしい点をちょっと楽にしてくれるツールkubectxとkubensを同僚のキム インソに教えてもらったのでシェアします。
インストール
macだとHomebrewでコマンド一発でインストール可能です。
$ brew install kubectx
これだけでkubectxとkubens両方のコマンドが使えるようになります。
他にも色々なインストール方法があるので、詳細はREADMEを御覧ください。
contextまわりのコマンドが覚えられない
kubectxコマンドが便利です。
context一覧を表示
現在のcontextは他と違う色で表示されます。(上記だと一番下の〜.ap-northeast-1.eksctl.io)
context切り替え
$ kubectx (変更先context名)
その他
他にも色々できます。まあでも上記2コマンドだけ覚えてれば十分便利ではないでしょうか。
namespaceの指定を毎コマンドごとにするのが面倒
実はkubectlコマンドだけでも、毎回のnamespaceの指定を省略することが可能です。以下コマンドでデフォルトのnamespaceを切り替えることができ、そうすると -nもしくは--namespaceオプションなしでもそのnamespaceが使われます。
$ kubectl config set-context (context名) --namespace=(namespace名)
ですが、contextまわりのコマンドが覚えられないと言っていた私にはハードルが高い。。というわけで、代わりに kubens コマンドを使います。
namespace一覧を表示
kubectx同様、現在のnamespaceは他と違う色で表示されます。(上記例だとdefault)
namespace切り替え
$ kubens (変更先namespace名)
その他
他のサブコマンドもあります。
まとめ
kubectxとkubensコマンドを使ってちょっと楽する方法をご紹介しました。便利です。おすすめです。










