Kubernetes(k8s)에서 Namespace는 클러스터 내 리소스를 격리하고 관리하기 위한 논리적 구분 단위로 단일 클러스터에서도 여러 프로젝트, 환경, 팀별 리소스를 깔끔하게 분리하고 권한을 관리할 수 있다.

Namespace의 역할
- 리소스 격리
- 같은 클러스터 안에서도 프로젝트별, 서비스별 리소스를 분리 관리 가능
- ex. `dev`, `staging`, `prod` 를 나누어서 Pod, Service, Deployment 등을 구분
- 권한 관리
- Role / RoleBinding을 namespace 단위로 적용 가능
- 팀별 접근 권한 제어에 유용
- 리소스 관리
- ResourceQuota와 LimitRange 적용 가능
- 특정 namespace 내 CPU, 메모리, 저장소 사용량 제한 가능
- 서비스 구분
- 동일 이름의 Pod/Service도 다른 namespace에 존재 가능
- ex. `frontend` 서비스가 dev, staging, prod 각각 namespace에 존재
Namespace 조회/생성/삭제
# 클러스터 내 모든 namespace 조회
kubectl get namespaces
kubectl get ns # 단축형
# 특정 namespace 생성
kubectl create namespace example-namespace
kubectl create ns example-namespace # 단축형
# namespace와 내부 모든 리소스 삭제
kubectl delete namespace example-namespace
kubectl delete ns example-namespace # 단축형
Namespace 지정해서 리소스 관리
# 특정 namespace에서 pod 조회
kubectl get pods -n example-namespace
# 특정 namespace에 Deployment, Service 등 적용
kubectl apply -f vllm.yaml -n example-namespace
# 특정 namespace에서 리소스 삭제
kubectl delete -f vllm.yaml -n example-namespace
namespace를 지정하지 않으면 기본 `default` namespace가 사용됨
Namespace context 변경
# 현재 kubectl context에서 기본 namespace 변경
kubectl config set-context --current --namespace=example-namespace
# 현재 namespace 확인
kubectl config view --minify | grep namespace:
Namespace 상세 정보 및 리소스 확인
# namespace 상태, 라벨, 리소스 쿼터 확인
kubectl describe namespace example-namespace
# 해당 namespace 내 모든 리소스 조회
kubectl get all -n example-namespace
# 모든 namespace에서 모든 리소스 조회
kubectl get all --all-namespaces'코딩 > k8s' 카테고리의 다른 글
| [K8s] K8s 환경에서 Python 애플리케이션 모니터링 구축 (0) | 2026.04.16 |
|---|---|
| [K8s] 메모리 고갈로 인한 OOMKilled 테스팅 (0) | 2026.04.06 |
| [K8s] Minikube 환경에서 HPA와 k6로 구현하는 부하 테스트 (0) | 2026.04.02 |