# 네임스페이스

## 네임스페이스

- 클러스터 안에 삽입할 수 있는 **가상의 클러스터**
- 클러스터 생성 시 다음의 **기본 네임스페이스가 생성됨**
  - `defualt`: **기본적으로 생성되는 네임스페이스**로 별도의 네임스페이스를 생성하지 않고 새 클러스터를 사용할 수 있음
  - `kube-node-lease`: 각 노드의 연관된 **리스** 오브젝트를 갖고 있으며 `kubelet`이 헬스 체크를 통해  
  **컨트롤 플레인이 노드의 장애를 탐지**하는데 사용 
  - `kube-public`: **모든 클라이언트(인증되지 않은 클라이언트 포함)** 가 읽기 권한으로 접근 가능
  - `kube-system`: **쿠버네티스 시스템**에서 생성한 오브젝트를 위한 네임스페이스
- 네임스페이스별로 **조작 권한을 설정**할 수 있음
- `kubectl get namespace` 명령어를 통해 네임스페이스 조회

---

## 여러 개의 네임스페이스를 사용하는 경우
- 네임스페이스는 **여러 개의 팀이나 프로젝트에 걸친 사용자가 많은 환경에 사용**하도록 개발됨
- **사용자가 거의 없거나 수 십명 정도의 유저가 사용하는 환경**에서는 네임스페이스가 필요하지 않음
- 각 쿠버네티스 리소스는 **하나의 네임스페이스만 존재**
- 동일한 네임스페이스 내에서 리소스를 구별하려면 **레이블**을 사용
- 프로덕션 레벨의 클러스터에서는 **`default`** 네임스페이스 사용을 지양할 것   

---

## 참고 자료
- [네임스페이스 | Kubernetes](https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/)