概要
kubectlでコマンドを実行するとき、 --namespace
で任意のnamespaceを指定できる。
$ kubectl get pods --namespace=hoge
特に指定しない場合はデフォルトのnamespaceが利用される。
またコマンドでどのnamespaceがデフォトで呼び出されるかわかる。
# 設定されているnamespaceがわかる
$ kubectl config veiew | grep namespace
# 現在存在するnamespaceが一覧できる
$ kubectl get ns
便利である一方、基本的に操作されるnamespaceが同じなのに毎回指定するのは面倒だしヒューマンエラーも起きる。
その場合はデフォルトnamespaceを登録してやる。
やってみる
手動でファイル更新は悪手なので、コマンドで操作していく。
やることはシンプルで「どのcontextが」「どのnamespaceに紐づくか」を設定してやるだけ。
$ kubectl config set-context $(kubectl config current-context) --namespace=[ns名]
ちなみに上記はcurrent-contextをset-contextに渡している。
current-contextはこのコマンドで見れる。
$ kubectl config current-context
current-context以外を渡したい時は、$()を変えてやればいい。
以下のコマンドのような結果ならOK。
$ kubectl config view | grep namespace
namespace [ns名]
小ネタ
--namespace
で任意のnamespaceを指定できる、と言ったが以下の4パターンとも有効。同じ結果が返ってくる。
$ kubectl get pods --namespace=hoge
$ kubectl get pods -n=hoge
$ kubectl get pods --namespace hoge
$ kubectl get pods -n hoge