はじめに
- Namespace を使うと同一クラスタ内で Pod や Service, Deployment や StatefulSet などを仮想的なクラスタとしてグルーピングして取り扱うことができて便利。
- ここでは kubectl コマンドで Namespace を切り替えて扱う方法についてまとめる。
Namespace を一時的に切り替える
- 実行コマンドごとに Namespace を切り替えたい場合は
-n
オプションを使う。
# 表示する Namespace を "mynamespace" に切り替える
$ kubectl -n mynamespace get all
Namespace を永続的に切り替える
- 接続中のコンテキストでのデフォルト Namespace を変更する。
# コンテキストのデフォルト Namespace を "mynamespace" に変更する
$ kubectl config set-context $(kubectl config current-context) --namespace=mynamespace
# Namespace を確認する
$ kubectl config view | grep namespace:
特定の Namespace 用の kubectl コマンドを用意する
- 同一クラスタ内で複数 Namespace を扱っている際、永続的には切り替えたくないが特定の Namespace に頻繁に切り替えたいとする。
- この場合は特定の Namespace が適用済みの kubectl コマンドを用意すると便利かもしれない。
kubectl-mynamespace.sh
#!/bin/sh
/usr/local/bin/kubectl -n mynamespace $@
- 使い方は通常の kubectl コマンドと同様
./kubectl-mynamespace.sh get all