ksaitoの日記

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

kubernetesのclusterとnamespaceとcontextの操作を整理

clusternamespacecontextの操作について整理します。

cluster

クラスタを一覧します。

kubectl config get-clusters

クラスタは、サーバの集まりなので、同じクラスタで動くワークロードはサーバリソースを共有します。負荷テスト用、開発用、本番用など、負荷とコストのバランスを考慮してクラスタを考える必要があります。

namespace

ネームスペースを一覧します。

$ kubectl get namespaces 
NAME            STATUS    AGE
default         Active    27m
ingress-nginx   Active    26m
kube-public     Active    27m
kube-system     Active    27m
$

ネームスペースは、クラスタに作成するリソースを入れるフォルダのようなものです。システム毎に作成して、他のシステムのリソースと分離することができます。

コンテキスト

コンテキストの一覧を表示します。

$ kubectl config get-contexts 
CURRENT   NAME      CLUSTER   AUTHINFO     NAMESPACE
*         Default   local     kube-admin
$

コンテキストでデフォルトで利用するクラスタとネームスペースを指定できます。

jenkins用の環境を作る場合には、次のようにします。

$ kubectl create namespace jenkins
namespace/jenkins created
$ kubectl config set-context my-jenkins --cluster=local --namespace=jenkins
Context "my-jenkins" created.
$ kubectl config use-context my-jenkins 
Switched to context "my-jenkins".
$ kubectl config get-contexts 
CURRENT   NAME         CLUSTER   AUTHINFO     NAMESPACE
          Default      local     kube-admin   
*         my-jenkins   local                  jenkins
$ kubectl config current-context 
my-jenkins
$

以上