Pada lingkup Kubenertes , Namespace
memnyediakan mekanisme untuk mengisolasi sebuah group resource didalam sebuah cluster. Nama dari resouses di dalam sebuah namepsace tidak boleh sama (unique), Akan tetapi boleh sama di antara Namespace. Pembagian berbasis namespace hanya bekerja untuk namespace object (e.g. Deployments, Services, etc.) dan tidak untuk cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).
Secara default kubernetes terdapat 4 namespace:
kubectl get namespaces
ilyasa@k3s-master:~$ kubectl get namespaces
NAME STATUS AGE
default Active 11d
kube-node-lease Active 11d
kube-public Active 11d
kube-system Active 11d
Membuat file YAML my-namepsace.yaml
dengan berisikan:
apiVersion: v1
kind: Namespace
metadata:
name: <insert-namespace-name-here>
dan jalankan:
kubectl apply -f my-namepsace.yaml
Contoh:
ilyasa@k3s-master:~$ nano my-namepsace.yaml
ilyasa@k3s-master:~$ cat my-namepsace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace
ilyasa@k3s-master:~$ kubectl apply -f my-namepsace.yaml
namespace/my-namespace created
ilyasa@k3s-master:~$ kubectl get namespaces
NAME STATUS AGE
default Active 11d
kube-node-lease Active 11d
kube-public Active 11d
kube-system Active 11d
my-namespace Active 34s
Atau juga bisa menggunakan command dibawah:
kubectl create namespace <insert-namespace-name-here>
kubectl get pods -n <namespace>
ilyasa@k3s-master:~$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-576bfc4dc7-rwh47 1/1 Running 3 (69m ago) 11d
helm-install-traefik-crd-nb6ww 0/1 Completed 0 11d
helm-install-traefik-x45mt 0/1 Completed 1 11d
local-path-provisioner-6795b5f9d8-hk8pc 1/1 Running 3 (69m ago) 11d
metrics-server-557ff575fb-vmxlc 1/1 Running 3 (69m ago) 11d
svclb-traefik-b05fccef-64hx7 2/2 Running 2 (69m ago) 11d
svclb-traefik-b05fccef-6q65n 2/2 Running 6 (69m ago) 11d
svclb-traefik-b05fccef-dk8xw 2/2 Running 4 (69m ago) 11d
svclb-traefik-b05fccef-v77c9 2/2 Running 4 (69m ago) 11d
traefik-5fb479b77-5249q 1/1 Running 3 (69m ago) 11d
Anda juga dapat mengubah default namespace ke namespace lain.
kubectl config set-context --current --namespace=<namespace>
Untuk menghapus namespace cukup dengan:
kubectl delete namespaces <insert-some-namespace-name>
atau dengan definition yaml sebelumnya
kubectl delete -f my-namepsace.yaml
Contoh
ilyasa@k3s-master:~$ kubectl get namespaces
NAME STATUS AGE
default Active 11d
kube-node-lease Active 11d
kube-public Active 11d
kube-system Active 11d
my-namespace Active 34s
ilyasa@k3s-master:~$ kubectl delete -f my-namepsace.yaml
namespace "my-namespace" deleted
ilyasa@k3s-master:~$ kubectl get namespaces
NAME STATUS AGE
default Active 11d
kube-node-lease Active 11d
kube-public Active 11d
kube-system Active 11d
Referensi