728x90
■ 쿠버네티스(Kubernetes) NameSpace 개요
- 쿠버네티스 클러스터 내에서 리소스를 논리적으로 분리하는 방법이며, 네임스페이스는 고유한 이름을 가지며, 해당 네임스페이스 내에서만 오브젝트를 생성하고 관리할 수 있습니다
- 네임스페이스는 클러스터 자원을 (리소스 쿼터를 통해) 여러 사용자 사이에서 나누는 방법이다.
- 리소스의 이름은 네임스페이스 내에서 유일해야 하며, 네임스페이스 간에서 유일할 필요는 없음.
- 네임스페이스 기반 오브젝트 (예: 디플로이먼트, 서비스 등)는 해당 네임스페이스 내에서만 존재하고 관리되고, 클러스터 범위 오브젝트 (스토리지, 노드, 퍼시스턴트 볼륨)는 네임스페이스와 상관없이 전체 클러스터에서 공유됨
- 동일한 소프트웨어의 다른 버전과 같이 약간 다른 리소스를 분리하기 위해 여러 네임스페이스를 사용할 필요는 없다. 동일한 네임스페이스 내에서 리소스를 구별하기 위해 레이블을 사용한다.
■ 쿠버네티스(Kubernetes) NameSpace 종류
항목 | 설명 |
default | 쿠버네티스에는 이 네임스페이스가 포함되어 있으므로 먼저 네임스페이스를 생성하지 않고도 새 클러스터를 사용할 수 있다. 네임스페이스를 지정하지 않고 pod 생성 시 할당되는 기본값이다. |
kube-node-lease | 각 노드와 연관된 리스 오브젝트(coordination.k8s.io API 그룹에 속하는 오브젝트)를 갖는다. 노드 리스는 kubelet이 하트비트(노드의 .status 정보 업데이트)를 보내서 컨트롤 플레인이 노드의 장애를 탐지할 수 있게 한다. |
kube-public | 모든 클라이언트(인증되지 않은 클라이언트 포함)가 읽기 권한으로 접근할 수 있다. 이 네임스페이스는 주로 전체 클러스터 중에 공개적으로 드러나서 읽을 수 있는 리소스를 위해 예약되어 있다. |
kube-system | 쿠버네티스 시스템에서 생성한 오브젝트를 위한 네임스페이스 |
■ 쿠버네티스(Kubernetes) NameSpace 명령어
- kubectl get namespace: 현재 사용중인 클러스터의 네임스페이스 나열
- kubectl get namespaces <name>: 특정 네임스페이스에 대한 요약 정보 확인
- kubectl describe namespaces <name>: 상세 정보 확인, 리소스 한도 및 리소스 쿼터 정보 확인 가능
- kubectl create namespace <insert-namespace-name-here>: 네임스페이스 생성, 네임스페이스 생성은 유효한 DNS 레이블 이여야 함. (최대 63자, 소문자와 숫자만 가능, 영어/숫자로 시작하고 끝나야함)
- kubectl run nginx --image=nginx --namespace=<namespace-name>: Pod 생성 시 네임스페이스 지정
-
# yaml 코드를 통한 네임스페이스 생성 apiVersion: v1 kind: Namespace metadata: name: <insert-namespace-name-here>
- kubectl get pods --namespace=<namespace-name>: Pod정보 조회 시 특정 네임스페이스 필터 수행
- kubectl delete namespaces <insert-some-namespace-name>: 네임스페이스 삭제. 삭제할 경우 네임스페이스의 모든 것이 삭제됨
- 쿠버네티스의 대부분의 리소스는 네임스페이스에 소속되어 있지만 저수준의 리소스(노드, 스토리지, 퍼시스턴트 볼륨 등) 는 네임스페이스에 속하지 않는다.
- kubectl api-resources --namespaced=true : 네임스페이스에 속하는 리소스 조회
- kubectl api-resources --namespaced=false : 네임스페이스에 속하지 않는 리소스 조회
728x90
'K8S' 카테고리의 다른 글
쿠버네티스(Kubernetes) NameSpace 메모리 자원 할당 (0) | 2024.08.25 |
---|---|
쿠버네티스(Kubernetes) Pod Quality of Service (QoS) (0) | 2024.08.23 |
쿠버네티스(Kubernetes) Label & Annotation (0) | 2024.08.20 |
쿠버네티스(Kubernetes) Pod 설계 디자인 (0) | 2024.08.02 |
쿠버네티스(Kubernetes) Pod 생성과 관리 (0) | 2024.07.28 |