Cloud/Kubernetes

[Kubernetes] 쿠버네티스 아키텍쳐 | namespace

cho2cee 2021. 12. 7. 09:59

1. k8s namespace

namespace클러스터 하나를 여러 개의 논리적인 단위로 나눠서 사용하는 것 

쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유 

용도에 따라 실행해야 하는 앱을 구분할 때 사용한다.

 

2. namespace 사용하기

① namespace 생성 

  • CLI 
$ kubectl create namespace blue
$ kubectl get namespaces
  • yaml
$ kubectl create namespace green --dry-run -o yaml > green-ns.yaml 
$ vim green-ns.yaml 
$ kubectl create -f green-ns.yaml

 

② namespace 관리 

$ kubectl get namespace 
$ kubectl delete namespace

 

③ 현재 시스템의 namespace 확인 

controlplane $ kubectl get namespace
NAME              STATUS   AGE
default           Active   10m
kube-node-lease   Active   10m
kube-public       Active   10m
kube-system       Active   10m

➜ 이 4개의 namespace 는 k8s 설치시 기본적으로 제공하는 namespace이다. 

 

controlplane $ kubectl get pod
// 현재의 namespace 확인 
No resources found in default namespace.

controlplane $ kubectl get pod --namespace default
// default namespace의 pod 확인
No resources found in default namespace.

controlplane $ kubectl create namespace orange --dry-run -o yaml
// orange namespace를 생성할 수 있는지(--dry-run 옵션) yaml 파일을 통해 확인 
W1207 01:19:03.717366   17583 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: null
  name: orange
spec: {}
status: {}

controlplane $ vi orange-ns.yaml 
// yaml 파일을 이용해 namespace를 생성 
apiVersion: v1
kind: Namespace
metadata:
  creationTimestamp: null
  name: orange
// 22~26가 namespace를 생성하는데 필요한 yaml 포맷의 컨텐츠 

controlplane $ kubectl create -f orange-ns.yaml 
namespace/orange created

 

3. 사용할 namespace switch

기본으로 사용하는 namespace를 default가 아닌 다른 namespace로 switch 

① namespace를 포함한 context 등록 

② 등록된 namespace로 context 변경 

 


Reference

🔗따라하면서 배우는 쿠버네티스