[Kubernetes]Namespace

김동주·2024년 6월 6일

Namespace

  • 클러스터 하나를 여러 개의 논리 적인 단위로 나워서 사용
  • 쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유
  • 용도에 따라 실행해야 하는 앱을 구분할 때 사용

간단히 정리하자면 우리가 사용하는 파드, 레플리카셋, 디플로이먼트, 서비스들을과 같은 리소스들을 묶어 논리적으로 나눠서 사용하고 싶을때 사용한다. 예를들어 모니터링 전용 리소스들을 따로 나눠서 관리하고 싶을때 네임스페이스별로 리소스들을 나누면 다른 리소스와 논리적으로 구분되어 쉽게 더욱더 편하게 쿠버네티스 환경을 운영할 수 있다.
현재 쿠버네티스를 설치할때 기본적으로 Default 네임스페이스로 설정된다. 그래서 파드, 디플로이먼트등을 만들때 기본적으로 Default 네임스페이스로 생성이 된다. 나는 하지만 Default 네임스페이스가 아닌 다른 네임스페이스를 생성하여 기본으로 사용하고 싶다면 새로운 Context를 생성한 후 Switch해주면된다.
kubectl config view를 명렁어를 통하여 Context를 확인 할 수 있다.

하지만 네임스페이스는 물리적으로 격리하는 노드가 아닌 논리적으로 격리되기 때문에 그 점을 주의하면 좋을 것 같다.

초기 네임스페이스

Default

  • 쿠버네티스에는 이 네임스페이스가 포함되어 있으므로 먼저 네임스페이스를 생성하지 않고도 새 클러스터를 사용할 수 있다.

kube-node-lease

  • 이 네임스페이스는 각 노드와 연관된 리스 오브젝트를 갖는다. 노드 리스는 kubelet이 하트비트를 보내서 컨트롤 플레인이 노드의 장애를 탐지할 수 있게 한다.

kube-public

  • 이 네임스페이스는 모든 클라이언트(인증되지 않은 클라이언트 포함)가 읽기 권한으로 접근할 수 있다. 이 네임스페이스는 주로 전체 클러스터 중에 공개적으로 드러나서 읽을 수 있는 리소스를 위해 예약되어 있다. 이 네임스페이스의 공개적인 성격은 단지 관례이지 요구 사항은 아니다.

kube-system

  • 쿠버네티스 시스템에서 생성한 오브젝트를 위한 네임스페이스.

참조문서
https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/

profile
더욱 더 발전된 엔지니어가 되기 위한 개인 공부 블로그(DevOps/Cloud)

0개의 댓글