Search
Duplicate

NameSpace

생성일
2021/05/04 20:24
태그

Namespaces

쿠버네티스 클러스터 내에서의 논리적인 구분 단위
Pods, Deployment , Service 등이 Namespace별로 구분됨
Namespace별로 정책을 다르게 가져갈 수 있다(접근 권한 etc)
Namespace별로 리소스의 할당량(Resource Quota)를 지정할 수 있다. (dev - CPU 100, Pro - CPU 400)
k8s 실행 시 자동으로 만들어지는 3개의 Namespace -> kube-system, Default, kube-public
다른 Namespace에 있는 pod 조회하기
$ kubectl get pods --namespace=kube-system
Plain Text
복사
pod definition file에 namespace를 지정하지 않으면 default namespace에 자동으로 pod를 생성한다.
apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx
Plain Text
복사
$ kubectl create -f pod-definition.yaml
Plain Text
복사
다른 Namespace에 생성하고 싶으면 -namespace 옵션을 사용
$ kubectl create -f pod-definition.yaml --namespace=dev
Plain Text
복사
-namespace 커맨드를 사용하지 않고 다른 Namespace에 사용하는 방법 -> pod-definition file에 namespace 항목 추가하기(metadata 아래)
apiVersion: v1 kind: Pod metadata: name: myapp-pod namespace: dev labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx
Plain Text
복사
Namespace definition file(namespace-dev.yaml)
apiVersion: v1 kind: Namespace metadata: name: dev
Plain Text
복사
$ kubectl create -f namespace-dev.yaml
Plain Text
복사
다른 방법
$ kubectl create namespace dev
Plain Text
복사
별도의 command 없이 다른 Namespace를 지속적으로 사용하기 위한 방법
$ kubectl config set-context $(kubectl config current-context) --namespace=dev
Plain Text
복사
모든 Namespace의 pod 출력하기
$ kubectl get pods --all-namespaces
Plain Text
복사
Namespace의 리소스를 제한하기 위해서 ResourceQuota 를 사용한다. 아래는 definition file.
apiVersion: v1 kind: ResourceQuota metadata: name: compute-quota namespace: dev spec: hard: pods: "10" requests.cpu: "4" requests.memory: 5Gi limits.cpu: "10" limits.memory: 10Gi
Plain Text
복사
$ kubectl create -f compute-quota.yaml
Plain Text
복사
K8s Reference Docs: