-
namespace : 리소스를 논리적으로 구분하는 장벽
- 클러스터 하나를 여러 개의 논리 단위로 나눠서 사용하는 것
- 물리적인 클러스터 하나를 여러 개인것 처럼 사용할 수 있다.
- 네임스페이스 덕분에 쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유할 수 있다.
- 클러스터 안에서 용도에 따라 실행해야하는 앱을 구분할 때 사용
- --namespace 옵션을 명시하지 않으면 기본적으로 default 네임스페이스를 사용한다.
# namespace 별로 deployment 생성 kubectl create deploy ui --image=nginx --namespace red kubectl create deploy ui --image=nginx --namespace green kubectl create deploy ui --image=nginx --namespace yellow<시작하세요! 도커/쿠버네티스> 참고
쿠버네티스에서는 리소스를 논리적으로 구분하기 위해 네임스페이스를 제공한다.
네임스페이스는 포드, 레플리카셋, 디플로이먼트, 서비스 등과 같은 쿠버네티스 리소스들이 묶여있는 하나의 가상 공간 또는 그룹이라고 이해하면 된다. 모니터링을 위한 모든 리소스들은 monitoring, 테스트를 위한 리소스들은 testing 이라는 네임스페이스에서 생성할 수 있다. 여러 개발 조직이 하나의 쿠버네티스 클러스터를 공유해 사용해야한다면 조직별로 네임스페이스를 사용하도록 구성할 수 있다. 이처럼 여러 개의 네임스페이스를 사용하면 마치 하나의 클러스터에서 여러 개의 가상 클러스터를 동시에 사용하는 것처럼 느껴질 것이다. 네임스페이스의 리소스들은 논리적으로만 구분된 것일 뿐, 물리적으로 격리된 것은 아니라는 점을 알아둬야한다. 예를 들어 서로 다른 네임스페이스에서 생성된 포드가 다른 노드에 존재할 수도 있다.- 전체 namespace 조회

- kube-system namespace의 pod 조회

1. 네임스페이스 생성
- namespace 생성(CLI)
# blue namespace 생성 kubectl create namespace blue
- namespace 생성(YAML)
# namespace를 생성하기 위한 YAML 파일을 orange-ns.yaml 파일로 출력 kubectl create namespace orange --dry-run -o yaml > orange-ns.yaml # 파일 수정 vi orange-ns.yaml # yaml 파일로 생성 kubectl create -f orange-ns.yaml
- orange-ns.yaml
apiVersion: v1 kind: Namespace metadata: name: orange

- blue namespace에 nginx pod 생성
kubectl create -f nginx.yaml -n blue kubectl get pods -n blue- nginx.yaml
apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - image: nginx:1.14 name: nginx ports: - containerPort: 80 - containerPort: 443
- orange namespace에 nginx pod 생성
- nginx.yaml 수정
- namespace: orange
apiVersion: v1 kind: Pod metadata: name: mypod namespace: orange spec: containers: - image: nginx:1.14 name: nginx ports: - containerPort: 80 - containerPort: 443
kubectl create -f nginx.yaml kubectl get pods -n orange
2. Base namespace 변경
사용할 네임스페이스 switch
- 기본으로 사용하는 namespace를 default가 아닌 다른 이름의 namespace로 switch
1) namespace를 포함한 context 등록
kubectl config --help
kubectl config view
# namespace가 blue인 새로운 컨텍스트 생성 kubectl config set-context blue@kubernetes --cluster=kubernetes --user=kubernetes-admin --namespace=blue

2) 등록된 namespace로 context 변경kubectl config use-context blue@kubernetes
- default namespace로 전환
# Base namespace를 default namespace로 전환 kubectl config use-context kubernetes-admin@kubernetes # 현재 사용하고 있는 context 확인 kubectl config current-context
- blue namespace 삭제
kubectl delete namespaces blue- namespace 삭제 시 pod도 삭제된다.

참고
따배쿠
시작하세요! 도커/쿠버네티스
'K8s' 카테고리의 다른 글
컴포넌트 종류와 구성 및 애드온 (0) 2025.07.14 Pod (0) 2025.07.10 쿠버네티스 설치(kubeadm) (2) 2025.07.08 쿠버네티스 설치를 위한 설정 1 (0) 2025.07.08 쿠버네티스 설치를 위한 설정 2 (0) 2025.07.04