ksaitoの日記

日々試したことの覚え書き

kubectlのデフォルト環境

kubernetesで複数のクラスタを作成すると、kubectlコマンドで操作対象にするクラスタやネームスペースを選択するのが煩雑になります。

kubectl config set-contextでコンテキストにクラスタとネームスペースの組み合わせに名前をつけて切り替えられるようになるので便利です。

最初の環境

下記のように、最初に作成したクラスタとdefaultネームスペースが捜査の対象になります。

$ kubectl config get-contexts 
CURRENT   NAME      CLUSTER   AUTHINFO     NAMESPACE
*         sandbox   sandbox   user-6ds5r

コンテキストの作成

kubectl config set-contextコマンドで、クラスタとネームスペースの組み合わせに名前をつけます。

下記のようにsandboxクラスタのjenkinsネームスペースにjenkinsというコンテキスト名を付けます。

kubectl config set-context jenkins --cluster=sandbox --namespace=jenkins --user=user-6ds5r
$ kubectl config get-contexts 
CURRENT   NAME      CLUSTER   AUTHINFO     NAMESPACE
          jenkins   sandbox   user-6ds5r   jenkins
*         sandbox   sandbox   user-6ds5r
$

コンテキストの使用

kubectl config use-contextでコンテキストを切り替えます。

これで、kubectlコマンドの操作対象がsandboxクラスタのjenkinsネームスペースになります。

$ kubectl config use-context jenkins 
Switched to context "jenkins".
$ kubectl config current-context 
jenkins
$ kubectl config get-contexts 
CURRENT   NAME      CLUSTER   AUTHINFO     NAMESPACE
*         jenkins   sandbox   user-6ds5r   jenkins
          sandbox   sandbox   user-6ds5r 
$

以上