본문 바로가기
  • 지요미의 IT성장일기
Kubernetes

쿠버네티스-namespace

by 지요미=P 2024. 2. 19.
728x90

namespace 관리

네임스페이스는 쿠버네티스 클러스터 하나를 여러개 논리적인 단위로 나눠서 사용하는 것이다.
네임스페이스 덕분에 쿠버네티스 클러스터 하나를 여러개 팀이나 사용자가 함께 공유할 수 있다.

또한 클러스터 안에서 용도에 따라 실행해야 하는 앱을 구분할 때도 네임스페이스를 사용한다.
네임스페이스별로 별도의 쿼터를 설정해서 특정 네임스페이스의 사용량을 제한할 수도 있다.

 

GCP에서 project와 같다.

클러스터 가진 총량을 가지고 팀마다 네임스페이스를 만들 수 있고,

네임스페이스별로 쿼터를 정하여 자원사원량을 별도로 쿼터로 정해 설정을 한다.

 

우리는 이 중에서도 주로 default라는 namespace를 이용했다.

네임스페이스를 지정하지 않으면 '기본'인 default로 지정된다.

 

kube-system이라는 네임스페이스 안에 존재하는 파드들

 

 

 

영업부 사람들을 위해 sales라는 namespace를 만들어보자.

kubectl create namespace sales
kubectl get pod -n sales #세일즈 N안에 있는 파드를 보는 방법

현재는 존재하는 pod가 없음

 

 

일단 이전에 실습했던 내용 모두 지워주기~!

kubectl delete all --all --force

 

# cd /test
# vi nginx-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  namespace: sales
  name: nginx-pod
  labels:
    app: nginx-pod
spec:
  containers:
  - name: nginx-pod-container
    image: 34.22.96.240:5000/nginx:latest
    ports:
    - containerPort: 8080
    
# kubectl get apply -f nginx-pod.yaml

 

만약, 내가 영업부서 직원이라는 가정.

나는 영업부서 직원인데 굳이 이렇게 들어갈 필요가 없지 않나?!

 

kubectl config get-contexts kubernetes-admin@kubernetes

네임스페이스가 없다는 것은 default값이라는 뜻이다.

 

kubernetes-admin 사용자로 로그인해서 kubernetes라는 클러스터에 위치해 있다.

 

kubectl config set-context kubernetes-admin@kubernetes --namespace=sales

나는 영업부서의 직원이니까 namespace를 채워주자.

[set-context]라는 명령어를 넣어주면 정보가 변경이 가능하다.

 

 

kubectl config set-context kubernetes-admin@kubernetes --namespace=default

다시 default로 가고 싶다고 해도 [set-context]를 이용하니 변경됨!

디폴트 네임스페이스니까 당연히 k get pod해도 나오지 않음.

 

 

네임스페이스를 지우고 싶다면?

kubectl delete namespace sales


GCP 프로젝트처럼 모두 삭제된다.

 

728x90