네임스페이스란?
새로운 이름을 지정하여 리소스의 공간을 분리하는 것
쿠버네티스의 3가지 네임스페이스
kube-system
쿠버네티스가 네트워킹 솔루션, DNS서비스에 사용되는 포드와 서비스 셋을만드는 곳
사용자가 실수로 건들지 않게 네임스페이스로 분리
default-namespace
우리가 포드를 생성하고 서비스를 생성하는 네임스페이스
kube-publice
쿠버네티스의 모든 사용자가 사용할 리소스
네임스페이스별 조회
리소스 조회를 할 때 네임스페이스를 지정하지 않으면 default로 지정된다.
kubectl get pods
kubectl get pods --namespace=kube-system
아래 사진과 같이 default로 조회할 때는 리소스가 존재하지 않았지만,
kube-system namespace로 조회할 시 쿠버네티스가 기본적으로 생성한 리소스들을 확인할 수 있다.
리소스 생성시 네임스페이스 분리
생성할 때 namespace 지정
kubectl create -f pod-defination.yml --namespace=dev
파일로 초기에 지정하는 법
아래와 같이 metadata에 namespace를 지정할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
namespace: dev
labels:
app: my-app
type: frontend-app
spec:
containers:
- name: nginx-container
image: nginx
NameSpace 생성 방법
namespace-dev.yaml 파일 작성
apiVersion: v1
kind: Namespace
metadata:
name: dev
네임스페이스 생성
kubectl create -f namespace-dev.yaml
기본 네임스페이스 변경 방법
하나의 namespace환경에만 계속 접근을 하는 경우 매번 namespace를 명시하기 번거롭다.
아래와 같이 기본 namespace를 변경할 수 있다.
kubectl config current-context를 통해 여러 클러스터 환경 중 현재 환경을 가져온다.
kubectl config set-contexts ${kubectl config current-context} --namespace=dev
모든 네임스페이스 리소스 보기
kubectl get pods --all-namespaces
Resource Quota
각 네임스페이스의 리소스를 제한하기 위해 compute-quota.yaml 생성
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: dev
spec:
pods: "10"
requests.cpu: "4"
requests.memory: "5Gi"
limits.cpu: "10"
limits.memory: "10Gi"
Resource Quota 생성
kubectl create -f compute-quota.yaml
'Kubernetes' 카테고리의 다른 글
[k8s] Node Selector (0) | 2025.02.05 |
---|---|
[k8s] Taint and Toleration 개념 (0) | 2025.02.05 |
[k8s] Lables&Selectors 개념 (0) | 2025.02.05 |
[k8s] Scheduling, Binding 개념 (0) | 2025.02.04 |
[k8s] Taints, Tolerations 개념 (0) | 2025.02.04 |